From 8b314a2088a4400dc855251bd5001aa41191ab51 Mon Sep 17 00:00:00 2001 From: Andrew Welch Date: Tue, 30 Jan 2024 22:28:46 -0500 Subject: [PATCH] chore: ECS code cleanup --- .../Expression/EmptyCoalesceExpression.php | 4 +- src/Seomatic.php | 56 +- src/base/ContainerInterface.php | 5 +- src/base/FluentModel.php | 3 +- src/base/FrontendTemplate.php | 2 +- src/base/FrontendTemplateInterface.php | 3 +- src/base/GqlSeoElementInterface.php | 6 - src/base/InheritableSettingsModel.php | 1 - src/base/MetaItem.php | 12 +- src/base/MetaItemInterface.php | 3 +- src/base/MetaService.php | 7 +- src/base/NonceContainer.php | 12 +- src/base/NonceItemInterface.php | 1 - src/base/SeoElementInterface.php | 6 +- src/base/SitemapInterface.php | 3 +- src/config.php | 4 +- src/controllers/ContentSeoController.php | 9 +- src/controllers/FileController.php | 2 +- .../FrontendTemplateController.php | 7 +- src/controllers/MetaContainerController.php | 1 - src/controllers/SettingsController.php | 24 +- src/controllers/SitemapController.php | 8 +- src/debug/panels/SeomaticPanel.php | 7 +- 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/events/MetaBundleDebugDataEvent.php | 8 +- src/fields/SeoSettings.php | 17 +- .../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 | 35 +- 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 | 6 +- src/helpers/Container.php | 9 +- src/helpers/Dependency.php | 16 +- src/helpers/DynamicMeta.php | 6 +- src/helpers/Environment.php | 18 +- src/helpers/Field.php | 30 +- src/helpers/Gql.php | 1 + src/helpers/ImageTransform.php | 21 +- src/helpers/JsonLd.php | 14 +- src/helpers/Localization.php | 2 +- src/helpers/MetaValue.php | 15 +- src/helpers/Migration.php | 125 ++- src/helpers/PluginTemplate.php | 13 +- src/helpers/PullField.php | 4 +- src/helpers/Schema.php | 20 +- src/helpers/Sitemap.php | 6 +- src/helpers/Text.php | 4 +- .../campaign/behaviors/CampaignBehavior.php | 1 - src/jobs/GenerateSitemap.php | 4 +- src/listeners/GetCraftQLSchema.php | 22 +- src/migrations/Install.php | 2 +- 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 | 1 - src/models/EditableTemplate.php | 5 +- src/models/FrontendTemplateContainer.php | 2 +- src/models/MetaBundle.php | 16 +- src/models/MetaBundleSettings.php | 4 +- src/models/MetaJsonLd.php | 32 +- src/models/MetaJsonLdContainer.php | 6 +- src/models/MetaLink.php | 6 +- src/models/MetaLinkContainer.php | 14 +- src/models/MetaScript.php | 2 +- src/models/MetaScriptContainer.php | 4 +- src/models/MetaSiteVars.php | 8 +- src/models/MetaSitemapVars.php | 18 +- src/models/MetaTag.php | 6 +- src/models/MetaTagContainer.php | 14 +- src/models/MetaTitle.php | 4 +- src/models/MetaTitleContainer.php | 14 +- src/models/Settings.php | 8 +- src/models/SitemapCustomTemplate.php | 16 +- src/models/SitemapIndexTemplate.php | 14 +- src/models/SitemapTemplate.php | 11 +- 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 | 7 +- src/models/metalink/CanonicalLink.php | 2 +- src/models/metalink/HomeLink.php | 8 +- src/models/metatag/DescriptionTag.php | 2 +- src/models/metatag/OgDescriptionTag.php | 2 +- src/models/metatag/OgImageTag.php | 2 +- src/models/metatag/OgLocaleTag.php | 4 +- src/models/metatag/OgTitleTag.php | 2 +- src/models/metatag/ReferrerTag.php | 2 +- src/models/metatag/RobotsTag.php | 2 +- src/models/metatag/TwitterDescriptionTag.php | 2 +- src/models/metatag/TwitterImageTag.php | 2 +- src/models/metatag/TwitterTitleTag.php | 2 +- src/records/MetaBundle.php | 1 - src/seoelements/SeoCampaign.php | 23 +- src/seoelements/SeoCategory.php | 24 +- src/seoelements/SeoDigitalProduct.php | 19 +- src/seoelements/SeoEntry.php | 23 +- src/seoelements/SeoEvent.php | 23 +- src/seoelements/SeoProduct.php | 21 +- src/seoelements/SeoShopifyProduct.php | 17 +- .../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 +- 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 +- .../shopifyproductmeta/LinkContainer.php | 15 +- .../shopifyproductmeta/ScriptContainer.php | 15 +- .../shopifyproductmeta/SitemapVars.php | 16 +- .../shopifyproductmeta/TagContainer.php | 57 +- src/services/FrontendTemplates.php | 22 +- src/services/Helper.php | 12 +- src/services/JsonLd.php | 2 +- src/services/Link.php | 2 +- src/services/MetaBundles.php | 24 +- src/services/MetaContainers.php | 31 +- src/services/SeoElements.php | 4 +- src/services/ServicesTrait.php | 2 +- src/services/Sitemaps.php | 10 +- src/services/Tag.php | 8 +- src/translations/en/seomatic.php | 2 +- src/twigextensions/SeomaticTwigExtension.php | 7 +- src/validators/EmbeddedModelValidator.php | 2 +- 1518 files changed, 255401 insertions(+), 255496 deletions(-) diff --git a/src/Node/Expression/EmptyCoalesceExpression.php b/src/Node/Expression/EmptyCoalesceExpression.php index b49587f71..fdf78b827 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 763473375..cbc8e4ae5 100644 --- a/src/Seomatic.php +++ b/src/Seomatic.php @@ -106,8 +106,8 @@ class Seomatic extends Plugin protected const FRONTEND_PREVIEW_PATH = 'seomatic/preview-social-media'; - const SEOMATIC_EXPRESSION_FIELD_TYPE = 'SeomaticExpressionField'; - const SEOMATIC_TRACKING_FIELD_TYPE = 'SeomaticTrackingField'; + public const SEOMATIC_EXPRESSION_FIELD_TYPE = 'SeomaticExpressionField'; + public const SEOMATIC_TRACKING_FIELD_TYPE = 'SeomaticTrackingField'; // Static Properties // ========================================================================= @@ -406,7 +406,7 @@ protected function installEventListeners(): void // 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(); @@ -423,7 +423,7 @@ protected function installEventListeners(): void 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(); @@ -444,7 +444,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__ @@ -460,7 +460,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(); @@ -490,7 +490,7 @@ protected function installGlobalEventListeners(): void 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 @@ -511,7 +511,7 @@ function () { Event::on( Fields::class, Fields::EVENT_REGISTER_FIELD_TYPES, - static function (RegisterComponentTypesEvent $event) { + static function(RegisterComponentTypesEvent $event) { $event->types[] = SeoSettingsField::class; $event->types[] = Seomatic_MetaField::class; } @@ -520,7 +520,7 @@ static 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__ @@ -540,7 +540,7 @@ static function (ModelEvent $event) { Event::on( Elements::class, Elements::EVENT_AFTER_DELETE_ELEMENT, - static function (ElementEvent $event) { + static function(ElementEvent $event) { Craft::debug( 'Elements::EVENT_AFTER_DELETE_ELEMENT', __METHOD__ @@ -559,7 +559,7 @@ static function (ElementEvent $event) { Event::on( Entry::class, Element::EVENT_REGISTER_PREVIEW_TARGETS, - static function (RegisterPreviewTargetsEvent $e) { + static function(RegisterPreviewTargetsEvent $e) { /** @var Element $element */ $element = $e->sender; if ($element->uri !== null) { @@ -580,7 +580,7 @@ static function (RegisterPreviewTargetsEvent $e) { Event::on( Application::class, BaseApplication::EVENT_BEFORE_REQUEST, - static function () { + static function() { /** @var Module|null $debugModule */ $debugModule = Craft::$app->getModule('debug'); @@ -597,7 +597,7 @@ static function () { Event::on( FeedMeFields::class, FeedMeFields::EVENT_REGISTER_FEED_ME_FIELDS, - static function (RegisterFeedMeFieldsEvent $e) { + static function(RegisterFeedMeFieldsEvent $e) { Craft::debug( 'FeedMeFields::EVENT_REGISTER_FEED_ME_FIELDS', __METHOD__ @@ -606,7 +606,7 @@ static function (RegisterFeedMeFieldsEvent $e) { } ); } - $updateMetaBundles = static function ($message) { + $updateMetaBundles = static function($message) { Craft::debug( $message, __METHOD__ @@ -625,7 +625,7 @@ static function (RegisterFeedMeFieldsEvent $e) { Event::on( SitesService::class, SitesService::EVENT_AFTER_SAVE_SITE, - static function () use ($updateMetaBundles) { + static function() use ($updateMetaBundles) { $updateMetaBundles('SitesService::EVENT_AFTER_SAVE_SITE'); } ); @@ -634,7 +634,7 @@ static function () use ($updateMetaBundles) { Event::on( SitesService::class, SitesService::EVENT_AFTER_DELETE_SITE, - static function () use ($updateMetaBundles) { + static function() use ($updateMetaBundles) { $updateMetaBundles('SitesService::EVENT_AFTER_DELETE_SITE'); } ); @@ -651,7 +651,7 @@ protected function installGqlHandlers(): void Event::on( Gql::class, Gql::EVENT_REGISTER_GQL_TYPES, - static function (RegisterGqlTypesEvent $event) { + static function(RegisterGqlTypesEvent $event) { Craft::debug( 'Gql::EVENT_REGISTER_GQL_TYPES', __METHOD__ @@ -664,7 +664,7 @@ static function (RegisterGqlTypesEvent $event) { Event::on( Gql::class, Gql::EVENT_REGISTER_GQL_QUERIES, - static function (RegisterGqlQueriesEvent $event) { + static function(RegisterGqlQueriesEvent $event) { Craft::debug( 'Gql::EVENT_REGISTER_GQL_QUERIES', __METHOD__ @@ -679,7 +679,7 @@ static function (RegisterGqlQueriesEvent $event) { Event::on( Gql::class, Gql::EVENT_REGISTER_GQL_SCHEMA_COMPONENTS, - static function (RegisterGqlSchemaComponentsEvent $event) { + static function(RegisterGqlSchemaComponentsEvent $event) { Craft::debug( 'Gql::EVENT_REGISTER_GQL_SCHEMA_COMPONENTS', __METHOD__ @@ -694,7 +694,7 @@ static function (RegisterGqlSchemaComponentsEvent $event) { Event::on( TypeManager::class, TypeManager::EVENT_DEFINE_GQL_TYPE_FIELDS, - static function (DefineGqlTypeFieldsEvent $event) use ($knownInterfaceNames) { + static function(DefineGqlTypeFieldsEvent $event) use ($knownInterfaceNames) { if (in_array($event->typeName, $knownInterfaceNames, true)) { Craft::debug( 'TypeManager::EVENT_DEFINE_GQL_TYPE_FIELDS', @@ -708,7 +708,7 @@ static 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.'), ]; } } @@ -726,7 +726,7 @@ protected function handleSiteRequest(): void Event::on( View::class, BaseView::EVENT_END_PAGE, - static function () { + static function() { Craft::debug( 'View::EVENT_END_PAGE', __METHOD__ @@ -749,7 +749,7 @@ protected function handleAdminCpRequest(): void // 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 { @@ -771,7 +771,7 @@ protected function installSiteEventListeners(): void 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__ @@ -813,7 +813,7 @@ protected function installCpEventListeners(): void 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__ @@ -829,7 +829,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__ @@ -843,7 +843,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; } @@ -855,7 +855,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/ContainerInterface.php b/src/base/ContainerInterface.php index 99594e67c..532dcf477 100644 --- a/src/base/ContainerInterface.php +++ b/src/base/ContainerInterface.php @@ -18,11 +18,10 @@ */ interface ContainerInterface { - // Constants // ========================================================================= - const CONTAINER_TYPE = 'GenericContainer'; + public const CONTAINER_TYPE = 'GenericContainer'; /** * @event IncludeContainerEvent The event that is triggered when a container is @@ -38,7 +37,7 @@ interface ContainerInterface * }); * ``` */ - const EVENT_INCLUDE_CONTAINER = 'includeContainer'; + public const EVENT_INCLUDE_CONTAINER = 'includeContainer'; // Static Methods // ========================================================================= diff --git a/src/base/FluentModel.php b/src/base/FluentModel.php index 77de80d9d..a90c099c0 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 35c0d3731..a8241b3c4 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 ffbc36b30..3a60af68a 100644 --- a/src/base/FrontendTemplateInterface.php +++ b/src/base/FrontendTemplateInterface.php @@ -18,11 +18,10 @@ */ interface FrontendTemplateInterface { - // Constants // ========================================================================= - const TEMPLATE_TYPE = 'GenericTemplate'; + public const TEMPLATE_TYPE = 'GenericTemplate'; // Public Methods // ========================================================================= diff --git a/src/base/GqlSeoElementInterface.php b/src/base/GqlSeoElementInterface.php index f9fdb4aee..5c83ccc54 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 85ee0e9b6..3460d28f7 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 7eb0ab5dd..d9ad74dcd 100644 --- a/src/base/MetaItem.php +++ b/src/base/MetaItem.php @@ -34,7 +34,7 @@ abstract class MetaItem extends FluentModel implements MetaItemInterface // Constants // ========================================================================= - const ARRAY_PROPERTIES = [ + public const ARRAY_PROPERTIES = [ ]; // Public Methods @@ -141,9 +141,8 @@ public function renderAttributes(array $params = []): array */ public function debugMetaItem( $errorLabel = 'Error: ', - array $scenarios = ['default' => 'error'] - ) - { + array $scenarios = ['default' => 'error'], + ) { $isMetaJsonLdModel = false; if (is_subclass_of($this, MetaJsonLd::class)) { $isMetaJsonLdModel = true; @@ -270,9 +269,8 @@ public function tagAttributesArray(): array */ public function validateStringOrArray( $attribute, - $params - ) - { + $params, + ) { $validated = false; if (\is_string($attribute)) { $validated = true; diff --git a/src/base/MetaItemInterface.php b/src/base/MetaItemInterface.php index a7282af70..9e9f5e201 100644 --- a/src/base/MetaItemInterface.php +++ b/src/base/MetaItemInterface.php @@ -18,11 +18,10 @@ */ interface MetaItemInterface { - // Constants // ========================================================================= - const ITEM_TYPE = 'Generic'; + public const ITEM_TYPE = 'Generic'; // Public Methods // ========================================================================= diff --git a/src/base/MetaService.php b/src/base/MetaService.php index d0d85fd6e..d97160275 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 @@ -26,7 +25,7 @@ abstract class MetaService extends Component implements MetaServiceInterface // Constants // ========================================================================= - const GENERAL_HANDLE = 'general'; + public const GENERAL_HANDLE = 'general'; // Public Methods // ========================================================================= diff --git a/src/base/NonceContainer.php b/src/base/NonceContainer.php index 7f7786680..c8c50f9cf 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 @@ -33,13 +33,13 @@ abstract class NonceContainer extends MetaContainer implements NonceContainerInt // Constants // ========================================================================= - const CSP_HEADERS = [ + public const CSP_HEADERS = [ 'Content-Security-Policy', 'X-Content-Security-Policy', 'X-WebKit-CSP', ]; - const CSP_DIRECTIVE = 'script-src'; + public const CSP_DIRECTIVE = 'script-src'; // Public Methods // ========================================================================= @@ -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/NonceItemInterface.php b/src/base/NonceItemInterface.php index 2cc311d53..cae17c3c0 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 96b038bc2..f10363bdf 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 @@ -82,7 +82,7 @@ public static function sitemapElementsQuery(MetaBundle $metaBundle): ElementQuer public static function sitemapAltElement( MetaBundle $metaBundle, int $elementId, - int $siteId + int $siteId, ); /** diff --git a/src/base/SitemapInterface.php b/src/base/SitemapInterface.php index 81d39593a..162feaa93 100644 --- a/src/base/SitemapInterface.php +++ b/src/base/SitemapInterface.php @@ -18,9 +18,8 @@ */ interface SitemapInterface { - // Constants // ========================================================================= - const GLOBAL_SITEMAP_CACHE_TAG = 'seomatic_sitemap'; + public const GLOBAL_SITEMAP_CACHE_TAG = 'seomatic_sitemap'; } diff --git a/src/config.php b/src/config.php index 594278a03..d3cb95cf7 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 e02dcd23b..bfe6dc8e3 100644 --- a/src/controllers/ContentSeoController.php +++ b/src/controllers/ContentSeoController.php @@ -28,12 +28,12 @@ class ContentSeoController extends Controller // Constants // ========================================================================= - const SORT_MAP = [ + public const SORT_MAP = [ 'DESC' => SORT_DESC, 'ASC' => SORT_ASC, ]; - const ALLOWED_SORT_FIELDS = [ + public const ALLOWED_SORT_FIELDS = [ 'sourceName', 'sourceType', ]; @@ -67,9 +67,8 @@ public function actionMetaBundles( int $page = 1, int $per_page = 20, $filter = '', - $siteId = 0 - ): Response - { + $siteId = 0, + ): Response { $data = []; $sortField = 'sourceName'; $sortType = 'ASC'; diff --git a/src/controllers/FileController.php b/src/controllers/FileController.php index 9c5503c98..087d0dba1 100644 --- a/src/controllers/FileController.php +++ b/src/controllers/FileController.php @@ -101,7 +101,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 6b59dbe8a..78c321960 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 f8c954727..263e07be2 100644 --- a/src/controllers/MetaContainerController.php +++ b/src/controllers/MetaContainerController.php @@ -300,5 +300,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 bb06945d9..e37adbce6 100644 --- a/src/controllers/SettingsController.php +++ b/src/controllers/SettingsController.php @@ -49,16 +49,16 @@ class SettingsController extends Controller // Constants // ========================================================================= - const DOCUMENTATION_URL = 'https://github.com/nystudio107/craft-seomatic'; + public const DOCUMENTATION_URL = 'https://github.com/nystudio107/craft-seomatic'; - const SETUP_GRADES = [ + public const SETUP_GRADES = [ ['id' => 'data1', 'name' => 'A', 'color' => '#008002'], ['id' => 'data2', 'name' => 'B', 'color' => '#9ACD31'], ['id' => 'data4', 'name' => 'C', 'color' => '#FFA500'], ['id' => 'data5', 'name' => 'D', 'color' => '#8B0100'], ]; - const SEO_SETUP_FIELDS = [ + public const SEO_SETUP_FIELDS = [ 'mainEntityOfPage' => 'Main Entity of Page', 'seoTitle' => 'SEO Title', 'seoDescription' => 'SEO Description', @@ -67,13 +67,13 @@ class SettingsController extends Controller 'seoImageDescription' => 'SEO Image Description', ]; - const SITE_SETUP_FIELDS = [ + public const SITE_SETUP_FIELDS = [ 'siteName' => 'Site Name', 'twitterHandle' => 'Twitter Handle', 'facebookProfileId' => 'Facebook Profile ID', ]; - const IDENTITY_SETUP_FIELDS = [ + public const IDENTITY_SETUP_FIELDS = [ 'computedType' => 'Identity Entity Type', 'genericName' => 'Identity Entity Name', 'genericDescription' => 'Identity Entity Description', @@ -503,9 +503,8 @@ public function actionEditContent( string $sourceHandle, string $siteHandle = null, $typeId = null, - $loadFromSiteHandle = null - ): Response - { + $loadFromSiteHandle = null, + ): Response { $variables = []; // @TODO: Let people choose an entry/categorygroup/product as the preview // Get the site to edit @@ -807,7 +806,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); @@ -918,7 +917,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; @@ -1206,9 +1205,8 @@ protected function setContentFieldSourceVariables( string $sourceBundleType, string $sourceHandle, string $groupName, - array &$variables - ) - { + array &$variables, + ) { $variables['textFieldSources'] = array_merge( ['entryGroup' => ['optgroup' => $groupName . ' Fields'], 'title' => 'Title'], FieldHelper::fieldsOfTypeFromSource( diff --git a/src/controllers/SitemapController.php b/src/controllers/SitemapController.php index aea84b959..c330e2dc8 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 642bacb0d..4f6bd3ba4 100644 --- a/src/debug/panels/SeomaticPanel.php +++ b/src/debug/panels/SeomaticPanel.php @@ -21,10 +21,10 @@ class SeomaticPanel extends Panel { - const CONTAINER_PARSED_PROPERTIES = [ + public 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 d18868aeb..aa7b40d25 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/events/MetaBundleDebugDataEvent.php b/src/events/MetaBundleDebugDataEvent.php index a94ece783..388529fbe 100644 --- a/src/events/MetaBundleDebugDataEvent.php +++ b/src/events/MetaBundleDebugDataEvent.php @@ -21,10 +21,10 @@ */ class MetaBundleDebugDataEvent extends Event { - const GLOBAL_META_BUNDLE = 'global'; - const CONTENT_META_BUNDLE = 'content'; - const FIELD_META_BUNDLE = 'field'; - const COMBINED_META_BUNDLE = 'combined'; + public const GLOBAL_META_BUNDLE = 'global'; + public const CONTENT_META_BUNDLE = 'content'; + public const FIELD_META_BUNDLE = 'field'; + public const COMBINED_META_BUNDLE = 'combined'; // Properties // ========================================================================= diff --git a/src/fields/SeoSettings.php b/src/fields/SeoSettings.php index 86f434764..2ac00b118 100644 --- a/src/fields/SeoSettings.php +++ b/src/fields/SeoSettings.php @@ -48,9 +48,9 @@ class SeoSettings extends Field implements PreviewableFieldInterface // Constants // ========================================================================= - const CACHE_KEY = 'seomatic_fieldmeta_'; + public const CACHE_KEY = 'seomatic_fieldmeta_'; - const BUNDLE_COMPARE_FIELDS = [ + public const BUNDLE_COMPARE_FIELDS = [ 'metaGlobalVars', ]; @@ -261,7 +261,7 @@ public function serializeValue(mixed $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); } @@ -281,7 +281,7 @@ public function getSettingsHtml(): ?string $tagOptions = [ 'depends' => [ 'nystudio107\\seomatic\\assetbundles\\seomatic\\SeomaticAsset', - ] + ], ]; // JS/CSS modules try { @@ -315,7 +315,7 @@ public function getInputHtml(mixed $value, ?ElementInterface $element = null): s $tagOptions = [ 'depends' => [ 'nystudio107\\seomatic\\assetbundles\\seomatic\\SeomaticAsset', - ] + ], ]; // JS/CSS modules try { @@ -404,7 +404,7 @@ public function getTableAttributeHtml(mixed $value, ElementInterface $element): $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' => [ @@ -442,9 +442,8 @@ function () use ($uri, $siteId, $element) { protected function setContentFieldSourceVariables( Element $element, string $groupName, - array &$variables - ) - { + array &$variables, + ) { $variables['textFieldSources'] = array_merge( ['entryGroup' => ['optgroup' => $groupName . ' Fields'], 'title' => 'Title'], FieldHelper::fieldsOfTypeFromElement( diff --git a/src/gql/arguments/FrontendContainerArguments.php b/src/gql/arguments/FrontendContainerArguments.php index e1803fc44..6daf996d0 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 e003e3aaf..b90fddbf1 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 9a8be8c7c..914521f25 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 84305159c..2e7bbf94a 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 96c522d08..755800321 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 * @@ -45,7 +45,7 @@ class SeomaticInterface extends BaseInterfaceType // Constants // ========================================================================= - const GRAPH_QL_FIELDS = [ + public const GRAPH_QL_FIELDS = [ 'metaTitleContainer' => MetaTitleContainer::CONTAINER_TYPE, 'metaTagContainer' => MetaTagContainer::CONTAINER_TYPE, 'metaLinkContainer' => MetaLinkContainer::CONTAINER_TYPE, @@ -55,7 +55,7 @@ class SeomaticInterface extends BaseInterfaceType 'frontendTemplateContainer' => FrontendTemplateContainer::CONTAINER_TYPE, ]; - const DEPRECATED_GRAPH_QL_FIELDS = [ + public const DEPRECATED_GRAPH_QL_FIELDS = [ 'frontendTemplateContainer' => 'This query is deprecated and will be removed in the future. You should use `frontendTemplates` instead.', ]; @@ -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 fb661e954..adab8698d 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(bool $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 f7ca2a0de..4ae905c67 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 440231a5e..18a1cd724 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 e650aca7c..d2c230443 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 e98dc23ba..66cd87fc6 100644 --- a/src/gql/types/FileContentsType.php +++ b/src/gql/types/FileContentsType.php @@ -82,7 +82,7 @@ public static function getFieldDefinition(): array 'contents' => [ 'name' => 'contents', 'type' => Type::string(), - ] + ], ]; return Craft::$app->getGql()->prepareFieldDefinitions($fields, self::getName()); diff --git a/src/gql/types/SeomaticEnvironmentType.php b/src/gql/types/SeomaticEnvironmentType.php index d578b0ae3..d8e439eac 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 ba2f56e71..a7ec259fd 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 1dbba7efb..3aaa3c6bc 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 478520a57..67f655f6f 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(mixed $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 500b19cd3..dd29f5a3f 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 @@ -26,7 +26,7 @@ class Config // Constants // ========================================================================= - const LOCAL_CONFIG_DIR = 'seomatic-config'; + public const LOCAL_CONFIG_DIR = 'seomatic-config'; // Static Methods // ========================================================================= diff --git a/src/helpers/Container.php b/src/helpers/Container.php index 77745dc6d..103d255af 100644 --- a/src/helpers/Container.php +++ b/src/helpers/Container.php @@ -28,7 +28,7 @@ class Container // Constants // ========================================================================= - const CACHE_KEY = 'seomatic_metacontroller_'; + public const CACHE_KEY = 'seomatic_metacontroller_'; // Static Methods // ========================================================================= @@ -47,9 +47,8 @@ public static function getContainerArrays( array $containerKeys, string $uri, int $siteId = null, - bool $asArray = false - ): array - { + bool $asArray = false, + ): 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/Dependency.php b/src/helpers/Dependency.php index 48476e886..d9f45e075 100644 --- a/src/helpers/Dependency.php +++ b/src/helpers/Dependency.php @@ -23,14 +23,14 @@ class Dependency // Constants // ========================================================================= - const CONFIG_DEPENDENCY = 'config'; - const SITE_DEPENDENCY = 'site'; - const META_DEPENDENCY = 'meta'; - const TAG_DEPENDENCY = 'tag'; - const SCRIPT_DEPENDENCY = 'script'; - const LINK_DEPENDENCY = 'link'; - const JSONLD_DEPENDENCY = 'jsonld'; - const FRONTEND_TEMPLATE_DEPENDENCY = 'frontend_template'; + public const CONFIG_DEPENDENCY = 'config'; + public const SITE_DEPENDENCY = 'site'; + public const META_DEPENDENCY = 'meta'; + public const TAG_DEPENDENCY = 'tag'; + public const SCRIPT_DEPENDENCY = 'script'; + public const LINK_DEPENDENCY = 'link'; + public const JSONLD_DEPENDENCY = 'jsonld'; + public const FRONTEND_TEMPLATE_DEPENDENCY = 'frontend_template'; // Static Methods // ========================================================================= diff --git a/src/helpers/DynamicMeta.php b/src/helpers/DynamicMeta.php index 5dca60f18..c8cf3d8fc 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 @@ -68,7 +67,7 @@ class DynamicMeta * }); * ``` */ - const EVENT_ADD_DYNAMIC_META = 'addDynamicMeta'; + public const EVENT_ADD_DYNAMIC_META = 'addDynamicMeta'; // Static Methods // ========================================================================= @@ -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 48ca1a396..227726565 100644 --- a/src/helpers/Environment.php +++ b/src/helpers/Environment.php @@ -25,18 +25,18 @@ class Environment // Constants // ========================================================================= - const SEOMATIC_DEV_ENV = 'local'; - const SEOMATIC_STAGING_ENV = 'staging'; - const SEOMATIC_PRODUCTION_ENV = 'live'; + public const SEOMATIC_DEV_ENV = 'local'; + public const SEOMATIC_STAGING_ENV = 'staging'; + public const SEOMATIC_PRODUCTION_ENV = 'live'; - const DEV_ENVIRONMENTS = [ + public const DEV_ENVIRONMENTS = [ 'dev', 'development', 'loc', - 'local' + 'local', ]; - const STAGING_ENVIRONMENTS = [ + public const STAGING_ENVIRONMENTS = [ 'stage', 'staging', 'test', @@ -44,15 +44,15 @@ class Environment 'uat', 'acc', 'acceptance', - 'sandbox' + 'sandbox', ]; - const PRODUCTION_ENVIRONMENTS = [ + public const PRODUCTION_ENVIRONMENTS = [ 'live', 'prod', 'production', 'pub', - 'public' + 'public', ]; // Static Methods diff --git a/src/helpers/Field.php b/src/helpers/Field.php index ec600d006..c960d0e45 100644 --- a/src/helpers/Field.php +++ b/src/helpers/Field.php @@ -46,13 +46,13 @@ class Field // Constants // ========================================================================= - const TEXT_FIELD_CLASS_KEY = 'text'; - const ASSET_FIELD_CLASS_KEY = 'asset'; - const BLOCK_FIELD_CLASS_KEY = 'block'; - const SEO_SETTINGS_CLASS_KEY = 'seo'; - const OLD_SEOMATIC_META_CLASS_KEY = 'Seomatic_Meta'; + public const TEXT_FIELD_CLASS_KEY = 'text'; + public const ASSET_FIELD_CLASS_KEY = 'asset'; + public const BLOCK_FIELD_CLASS_KEY = 'block'; + public const SEO_SETTINGS_CLASS_KEY = 'seo'; + public const OLD_SEOMATIC_META_CLASS_KEY = 'Seomatic_Meta'; - const FIELD_CLASSES = [ + public const FIELD_CLASSES = [ self::TEXT_FIELD_CLASS_KEY => [ CKEditorField::class, PlainTextField::class, @@ -119,9 +119,8 @@ class Field public static function fieldsOfTypeFromLayout( string $fieldClassKey, FieldLayout $layout, - bool $keysOnly = true - ): array - { + bool $keysOnly = true, + ): array { $foundFields = []; if (!empty(self::FIELD_CLASSES[$fieldClassKey])) { // Cache me if you can @@ -163,9 +162,8 @@ public static function fieldsOfTypeFromLayout( public static function fieldsOfTypeFromElement( Element $element, string $fieldClassKey, - bool $keysOnly = true - ): array - { + bool $keysOnly = true, + ): array { $foundFields = []; $layout = $element->getFieldLayout(); if ($layout !== null) { @@ -242,7 +240,7 @@ 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) { + array_map(function($key) use ($prefix) { return $prefix . '.' . $key; }, array_keys($fields)), $fields @@ -274,9 +272,8 @@ public static function fieldsOfTypeFromSource( string $sourceBundleType, string $sourceHandle, string $fieldClassKey, - bool $keysOnly = true - ): array - { + bool $keysOnly = true, + ): array { $foundFields = []; $layouts = []; // Get the layouts @@ -424,5 +421,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, @@ -83,7 +83,7 @@ class ImageTransform ], ]; - static private $cachedAssetsElements = []; + private static $cachedAssetsElements = []; // Static Methods // ========================================================================= @@ -103,9 +103,8 @@ public static function socialTransform( $asset, $transformName = '', $siteId = null, - $transformMode = null - ): string - { + $transformMode = null, + ): string { $url = ''; $transform = self::createSocialTransform($transformName); // Let them override the mode @@ -182,9 +181,8 @@ public static function socialTransformWidth( $asset, $transformName = '', $siteId = null, - $transformMode = null - ): string - { + $transformMode = null, + ): string { $width = ''; $transform = self::createSocialTransform($transformName); // Let them override the mode @@ -214,9 +212,8 @@ public static function socialTransformHeight( $asset, $transformName = '', $siteId = null, - $transformMode = null - ): string - { + $transformMode = null, + ): string { $height = ''; $transform = self::createSocialTransform($transformName); // Let them override the mode diff --git a/src/helpers/JsonLd.php b/src/helpers/JsonLd.php index 3b5c73db4..f54e7df43 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 @@ -24,24 +24,24 @@ class JsonLd extends \craft\helpers\Json // Constants // ========================================================================= - const IGNORE_ATTRIBUTES = [ + public const IGNORE_ATTRIBUTES = [ '@context', ]; - const AT_PREFIXED_ATTRIBUTES = [ + public const AT_PREFIXED_ATTRIBUTES = [ 'id', 'context', 'type', 'graph', ]; - const IGNORE_ALWAYS_ATTRIBUTES = [ + public const IGNORE_ALWAYS_ATTRIBUTES = [ 'include', 'key', 'nonce', ]; - const FULLY_QUALIFIED_URL_KEYS = [ + public const FULLY_QUALIFIED_URL_KEYS = [ 'url', 'logo', ]; @@ -62,7 +62,7 @@ public static function encode( $options = JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES - | JSON_HEX_TAG + | JSON_HEX_TAG, ) { // If `devMode` is enabled, make the JSON-LD human-readable if (Seomatic::$devMode) { @@ -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 be93d3c8b..102c79ba5 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 c1a69f5dc..fb8e89922 100644 --- a/src/helpers/MetaValue.php +++ b/src/helpers/MetaValue.php @@ -36,20 +36,20 @@ class MetaValue // Constants // ========================================================================= - const MAX_TEMPLATE_LENGTH = 4096; - const MAX_PARSE_TRIES = 5; + public const MAX_TEMPLATE_LENGTH = 4096; + public const MAX_PARSE_TRIES = 5; // Semicolon because that is the resolved config key when rendering tags, // kebab-case because that is the config keys as defined in the config files. - const NO_ALIASES = [ + public const NO_ALIASES = [ 'twitter:site', 'twitter:creator', 'twitterSite', 'twitterCreator', ]; - const NO_PARSING = [ + public const NO_PARSING = [ 'siteLinksSearchTarget', ]; - const PARSE_ONCE = [ + public const PARSE_ONCE = [ 'target', 'urlTemplate', ]; @@ -89,9 +89,8 @@ public static function parseString( $metaValue, bool $resolveAliases = true, bool $parseAsTwig = true, - $tries = self::MAX_PARSE_TRIES - ) - { + $tries = self::MAX_PARSE_TRIES, + ) { // If it's a string, and there are no dynamic tags, just return the template if (is_string($metaValue) && !str_contains($metaValue, '{')) { return self::parseMetaString($metaValue, $resolveAliases, $parseAsTwig) ?? $metaValue; diff --git a/src/helpers/Migration.php b/src/helpers/Migration.php index 264d45ef4..81195491f 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 @@ -26,95 +25,95 @@ class Migration // Constants // ========================================================================= - const FIELD_MIGRATION_CONTEXT = 'field'; - const SECTION_MIGRATION_CONTEXT = 'section'; + public const FIELD_MIGRATION_CONTEXT = 'field'; + public const SECTION_MIGRATION_CONTEXT = 'section'; - const MIGRATION_CONTEXTS = [ - self::FIELD_MIGRATION_CONTEXT => [ - 'metaGlobalVars' => [ + public const MIGRATION_CONTEXTS = [ + 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', ], ], ]; - const ARRAY_VALUE_MAP = [ + public const ARRAY_VALUE_MAP = [ ]; - const FIELD_VALUE_MAP = [ - 'seoTitleSource' => [ - 'field' => 'fromField', + public const FIELD_VALUE_MAP = [ + '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 54e985a56..108d5b9e9 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; @@ -31,7 +31,7 @@ class PluginTemplate // Constants // ========================================================================= - const MINIFY_PLUGIN_HANDLE = 'minify'; + public const MINIFY_PLUGIN_HANDLE = 'minify'; // Static Methods // ========================================================================= @@ -71,7 +71,7 @@ public static function renderStringTemplate(string $templateString, array $param public static function renderPluginTemplate( string $templatePath, array $params = [], - string $minifier = null + string $minifier = null, ): string { $template = 'seomatic/' . $templatePath; $oldMode = Craft::$app->view->getTemplateMode(); @@ -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/PullField.php b/src/helpers/PullField.php index 1ba3c8e08..899485603 100644 --- a/src/helpers/PullField.php +++ b/src/helpers/PullField.php @@ -22,7 +22,7 @@ class PullField // ========================================================================= - const PULL_TEXT_FIELDS = [ + public const PULL_TEXT_FIELDS = [ ['fieldName' => 'seoTitle', 'seoField' => 'seoTitle'], ['fieldName' => 'siteNamePosition', 'seoField' => 'siteNamePosition'], ['fieldName' => 'seoDescription', 'seoField' => 'seoDescription'], @@ -39,7 +39,7 @@ class PullField ['fieldName' => 'twitterImageDescription', 'seoField' => 'seoImageDescription'], ]; - const PULL_ASSET_FIELDS = [ + public const PULL_ASSET_FIELDS = [ ['fieldName' => 'seoImage', 'seoField' => 'seoImage', 'transformModeField' => 'seoImageTransformMode', 'transformName' => 'base'], ['fieldName' => 'ogImage', 'seoField' => 'seoImage', 'transformModeField' => 'ogImageTransformMode', 'transformName' => 'facebook'], ['fieldName' => 'twitterImage', 'seoField' => 'seoImage', 'transformModeField' => 'twitterImageTransformMode', 'transformName' => 'twitter'], diff --git a/src/helpers/Schema.php b/src/helpers/Schema.php index d353dcb93..741062ba6 100644 --- a/src/helpers/Schema.php +++ b/src/helpers/Schema.php @@ -28,19 +28,19 @@ class Schema // Constants // ========================================================================= - const SCHEMA_PATH_DELIMITER = '.'; - const MENU_INDENT_STEP = 4; + public const SCHEMA_PATH_DELIMITER = '.'; + public const MENU_INDENT_STEP = 4; - const SCHEMA_TYPES = [ + public const SCHEMA_TYPES = [ 'siteSpecificType', 'siteSubType', 'siteType', ]; - const GLOBAL_SCHEMA_CACHE_TAG = 'seomatic_schema'; - const SCHEMA_CACHE_TAG = 'seomatic_schema_'; + public const GLOBAL_SCHEMA_CACHE_TAG = 'seomatic_schema'; + public const SCHEMA_CACHE_TAG = 'seomatic_schema_'; - const CACHE_KEY = 'seomatic_schema_'; + public const CACHE_KEY = 'seomatic_schema_'; // Static Methods // ========================================================================= @@ -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( 'schemaArray 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/Sitemap.php b/src/helpers/Sitemap.php index 6f448f08a..5270c6eb6 100644 --- a/src/helpers/Sitemap.php +++ b/src/helpers/Sitemap.php @@ -46,7 +46,7 @@ class Sitemap * }); * ``` */ - const EVENT_INCLUDE_SITEMAP_ENTRY = 'includeSitemapEntry'; + public const EVENT_INCLUDE_SITEMAP_ENTRY = 'includeSitemapEntry'; /** * Generate a sitemap with the passed in $params @@ -226,7 +226,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[] = ''; @@ -568,7 +568,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 e7f11fb85..f5a3810ef 100644 --- a/src/helpers/Text.php +++ b/src/helpers/Text.php @@ -42,7 +42,7 @@ class Text // Constants // ========================================================================= - const LANGUAGE_MAP = [ + public const LANGUAGE_MAP = [ 'en' => 'English', 'fr' => 'French', 'de' => 'German', @@ -479,7 +479,7 @@ protected static function stopWordsForLanguage(string $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 79bff5031..9bcce0b9f 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/jobs/GenerateSitemap.php b/src/jobs/GenerateSitemap.php index 88b026a29..4967c4adc 100644 --- a/src/jobs/GenerateSitemap.php +++ b/src/jobs/GenerateSitemap.php @@ -25,7 +25,7 @@ class GenerateSitemap extends BaseJob /** * @const The number of assets to return in a single paginated query */ - const SITEMAP_QUERY_PAGE_SIZE = 100; + public const SITEMAP_QUERY_PAGE_SIZE = 100; // Properties // ========================================================================= @@ -57,7 +57,7 @@ public function execute($queue): void 'type' => $this->type, 'queueJobCacheKey' => $this->queueJobCacheKey, 'queue' => $queue, - 'job' => $this + 'job' => $this, ]; $this->queue = $queue; diff --git a/src/listeners/GetCraftQLSchema.php b/src/listeners/GetCraftQLSchema.php index aef0febfd..5ec74a04d 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 @@ -32,7 +32,7 @@ class GetCraftQLSchema // Constants // ========================================================================= - const CRAFT_QL_FIELDS = [ + public const CRAFT_QL_FIELDS = [ 'metaTitleContainer' => MetaTitleContainer::CONTAINER_TYPE, 'metaTagContainer' => MetaTagContainer::CONTAINER_TYPE, 'metaLinkContainer' => MetaLinkContainer::CONTAINER_TYPE, @@ -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 279889826..52ac2d0b5 100644 --- a/src/migrations/Install.php +++ b/src/migrations/Install.php @@ -199,7 +199,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 46d67cbb2..f574fa87a 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 e6eea2f15..79846485a 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 aeb7bb0e4..f53983e9d 100644 --- a/src/migrations/m210817_230853_announcement_v3_4.php +++ b/src/migrations/m210817_230853_announcement_v3_4.php @@ -17,7 +17,6 @@ class m210817_230853_announcement_v3_4 extends Migration public function safeUp() { if (version_compare(Craft::$app->getVersion(), '3.7', '>=')) { - Craft::$app->announcements->push( Translation::prep('seomatic', 'SEO Settings fields', []), Translation::prep('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.', [ diff --git a/src/models/EditableTemplate.php b/src/models/EditableTemplate.php index f7328872d..bda76c785 100644 --- a/src/models/EditableTemplate.php +++ b/src/models/EditableTemplate.php @@ -26,7 +26,7 @@ class EditableTemplate extends FrontendTemplate // Constants // ========================================================================= - const TEMPLATE_TYPE = 'EditableTemplate'; + public const TEMPLATE_TYPE = 'EditableTemplate'; // Static Methods // ========================================================================= @@ -108,8 +108,7 @@ public function rules(): array /** * @inheritdoc */ - public - function render(array $params = []): string + public function render(array $params = []): string { return PluginTemplateHelper::renderStringTemplate($this->templateString); } diff --git a/src/models/FrontendTemplateContainer.php b/src/models/FrontendTemplateContainer.php index 02f7e5f21..1e4c5f521 100644 --- a/src/models/FrontendTemplateContainer.php +++ b/src/models/FrontendTemplateContainer.php @@ -23,7 +23,7 @@ class FrontendTemplateContainer extends SeomaticContainer // Constants // ========================================================================= - const CONTAINER_TYPE = 'FrontendTemplateContainer'; + public const CONTAINER_TYPE = 'FrontendTemplateContainer'; // Public Properties // ========================================================================= diff --git a/src/models/MetaBundle.php b/src/models/MetaBundle.php index 99345ee64..439a7c6f4 100644 --- a/src/models/MetaBundle.php +++ b/src/models/MetaBundle.php @@ -270,29 +270,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, ], [ [ @@ -302,7 +302,7 @@ public function rules(): array 'metaBundleSettings', 'frontendTemplatesContainer', ], - 'safe' + 'safe', ], ]; @@ -321,7 +321,7 @@ public function behaviors(): array 'class' => EnvAttributeParserBehavior::class, 'attributes' => [ ], - ] + ], ]); } } diff --git a/src/models/MetaBundleSettings.php b/src/models/MetaBundleSettings.php index d3315fa70..84f51094f 100644 --- a/src/models/MetaBundleSettings.php +++ b/src/models/MetaBundleSettings.php @@ -268,7 +268,7 @@ public function rules(): array 'ogImageDescriptionSource', 'ogImageDescriptionField', ], - 'string' + 'string', ], [ ['seoImageTransformMode', 'twitterImageTransformMode', 'ogImageTransformMode'], @@ -285,7 +285,7 @@ public function rules(): array 'twitterImageTransform', 'ogImageTransform', ], - 'boolean' + 'boolean', ], [ ['seoImageSource', 'twitterImageSource', 'ogImageSource'], 'in', 'range' => [ diff --git a/src/models/MetaJsonLd.php b/src/models/MetaJsonLd.php index 8f0c922e5..b7fb9d978 100644 --- a/src/models/MetaJsonLd.php +++ b/src/models/MetaJsonLd.php @@ -50,28 +50,28 @@ class MetaJsonLd extends NonceItem * * @var string */ - static public string $schemaTypeName = 'JsonLd'; + public static string $schemaTypeName = 'JsonLd'; /** * The Schema.org Type Scope * * @var string */ - static public string $schemaTypeScope = 'https://schema.org/'; + public static string $schemaTypeScope = 'https://schema.org/'; /** * The Schema.org Type Description * * @var string */ - static public string $schemaTypeDescription = 'Generic JsonLd type.'; + public static string $schemaTypeDescription = 'Generic JsonLd type.'; /** * The Schema.org Type Extends * * @var string */ - static public string $schemaTypeExtends = ''; + public static string $schemaTypeExtends = ''; // Public Properties // ========================================================================= @@ -247,9 +247,8 @@ public function render( 'renderRaw' => true, 'renderScriptTags' => true, 'array' => false, - ] - ): string - { + ], + ): string { $html = ''; $options = $this->tagAttributes(); if ($this->prepForRender($options)) { @@ -370,9 +369,8 @@ public function datetimeAttributes(): array */ public function validateJsonSchema( $attribute, - $params - ) - { + $params, + ) { if (!in_array($attribute, $this->getSchemaPropertyNames(), true)) { $this->addError($attribute, 'The attribute does not exist.'); } else { @@ -394,7 +392,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; } @@ -402,7 +400,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; } @@ -412,7 +410,7 @@ public function validateJsonSchema( case 'Number': case 'Float': case 'Integer': - $validator = new NumberValidator; + $validator = new NumberValidator(); if ($expectedType === 'Integer') { $validator->integerOnly = true; } @@ -423,7 +421,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)) { @@ -437,7 +435,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)) { @@ -447,7 +445,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)) { @@ -501,6 +499,6 @@ public function generateNonce() return $result; } -// Private Methods + // Private Methods // ========================================================================= } diff --git a/src/models/MetaJsonLdContainer.php b/src/models/MetaJsonLdContainer.php index 1e9a90984..ba55c37da 100644 --- a/src/models/MetaJsonLdContainer.php +++ b/src/models/MetaJsonLdContainer.php @@ -30,7 +30,7 @@ class MetaJsonLdContainer extends NonceContainer // Constants // ========================================================================= - const CONTAINER_TYPE = 'MetaJsonLdContainer'; + public const CONTAINER_TYPE = 'MetaJsonLdContainer'; // Public Properties // ========================================================================= @@ -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 1222b7efe..f9b0c6100 100644 --- a/src/models/MetaLink.php +++ b/src/models/MetaLink.php @@ -30,9 +30,9 @@ class MetaLink extends MetaItem // Constants // ========================================================================= - const ITEM_TYPE = 'MetaLink'; + public const ITEM_TYPE = 'MetaLink'; - const ARRAY_PROPERTIES = [ + public const ARRAY_PROPERTIES = [ 'href', ]; @@ -119,7 +119,7 @@ public function rules(): array [['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 0e374dc1f..7b5b443ce 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; /** @@ -28,7 +28,7 @@ class MetaLinkContainer extends MetaContainer // Constants // ========================================================================= - const CONTAINER_TYPE = 'MetaLinkContainer'; + public const CONTAINER_TYPE = 'MetaLinkContainer'; // Public Properties // ========================================================================= @@ -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/MetaScript.php b/src/models/MetaScript.php index 6a5753d7a..1e8741974 100644 --- a/src/models/MetaScript.php +++ b/src/models/MetaScript.php @@ -28,7 +28,7 @@ class MetaScript extends NonceItem // Constants // ========================================================================= - const ITEM_TYPE = 'MetaScript'; + public const ITEM_TYPE = 'MetaScript'; // Static Methods // ========================================================================= diff --git a/src/models/MetaScriptContainer.php b/src/models/MetaScriptContainer.php index 9449576b7..b703e9c53 100644 --- a/src/models/MetaScriptContainer.php +++ b/src/models/MetaScriptContainer.php @@ -29,7 +29,7 @@ class MetaScriptContainer extends NonceContainer // Constants // ========================================================================= - const CONTAINER_TYPE = 'MetaScriptContainer'; + public const CONTAINER_TYPE = 'MetaScriptContainer'; // Public Properties // ========================================================================= @@ -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 0fd558545..ffa35719d 100644 --- a/src/models/MetaSiteVars.php +++ b/src/models/MetaSiteVars.php @@ -34,7 +34,7 @@ class MetaSiteVars extends VarsModel // Constants // ========================================================================= - const CONTAINER_TYPE = 'MetaSiteVarsContainer'; + public const CONTAINER_TYPE = 'MetaSiteVarsContainer'; // Static Methods // ========================================================================= @@ -169,13 +169,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 42f6ec1dd..2d458d2da 100644 --- a/src/models/MetaSitemapVars.php +++ b/src/models/MetaSitemapVars.php @@ -117,21 +117,21 @@ public function rules(): array ], [ [ - 'sitemapPriority' + 'sitemapPriority', ], - 'number' + 'number', ], [ [ - 'sitemapLimit' + 'sitemapLimit', ], - 'integer' + 'integer', ], [ [ - 'structureDepth' + 'structureDepth', ], - 'integer' + 'integer', ], [ [ @@ -140,14 +140,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 2daeeb611..4d227b19b 100644 --- a/src/models/MetaTag.php +++ b/src/models/MetaTag.php @@ -31,9 +31,9 @@ class MetaTag extends MetaItem // Constants // ========================================================================= - const ITEM_TYPE = 'MetaTag'; + public const ITEM_TYPE = 'MetaTag'; - const ARRAY_PROPERTIES = [ + public const ARRAY_PROPERTIES = [ 'content', ]; @@ -114,7 +114,7 @@ public function rules(): array $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 d65750721..23c9bc19c 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; /** @@ -28,7 +28,7 @@ class MetaTagContainer extends MetaContainer // Constants // ========================================================================= - const CONTAINER_TYPE = 'MetaTagContainer'; + public const CONTAINER_TYPE = 'MetaTagContainer'; // Public Properties // ========================================================================= @@ -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 6c0ccbc10..7c413bb15 100644 --- a/src/models/MetaTitle.php +++ b/src/models/MetaTitle.php @@ -27,8 +27,8 @@ class MetaTitle extends MetaItem // Constants // ========================================================================= - const ITEM_TYPE = 'MetaTitle'; - const DEFAULT_TITLE_KEY = 'title'; + public const ITEM_TYPE = 'MetaTitle'; + public const DEFAULT_TITLE_KEY = 'title'; // Static Methods // ========================================================================= diff --git a/src/models/MetaTitleContainer.php b/src/models/MetaTitleContainer.php index c75aa5e66..a1f781691 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; /** @@ -27,7 +27,7 @@ class MetaTitleContainer extends MetaContainer // Constants // ========================================================================= - const CONTAINER_TYPE = 'MetaTitleContainer'; + public const CONTAINER_TYPE = 'MetaTitleContainer'; // Public Properties // ========================================================================= @@ -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 74240fc50..d21c20018 100644 --- a/src/models/Settings.php +++ b/src/models/Settings.php @@ -94,7 +94,7 @@ class Settings extends VarsModel public array $sidebarDisplayPreviewTypes = [ 'google', 'twitter', - 'facebook' + 'facebook', ]; /** @@ -288,7 +288,7 @@ public function rules(): array 'addPaginatedHreflang', 'manuallySetEnvironment', ], - 'boolean' + 'boolean', ], ['cspNonce', 'string'], ['cspNonce', 'in', 'range' => [ @@ -311,7 +311,7 @@ public function rules(): array 'truncateTitleTags', 'truncateDescriptionTags', ], - 'boolean' + 'boolean', ], [['devModeTitlePrefix', 'cpTitlePrefix', 'devModeCpTitlePrefix'], 'string'], ['separatorChar', 'string'], @@ -350,7 +350,7 @@ public function behaviors(): array 'attributes' => [ 'environment', ], - ] + ], ]); } } diff --git a/src/models/SitemapCustomTemplate.php b/src/models/SitemapCustomTemplate.php index 2d41b8966..20055ede9 100644 --- a/src/models/SitemapCustomTemplate.php +++ b/src/models/SitemapCustomTemplate.php @@ -52,17 +52,17 @@ class SitemapCustomTemplate extends FrontendTemplate implements SitemapInterface * }); * ``` */ - const EVENT_REGISTER_SITEMAP_URLS = 'registerSitemapUrls'; + public const EVENT_REGISTER_SITEMAP_URLS = 'registerSitemapUrls'; - const TEMPLATE_TYPE = 'SitemapCustomTemplate'; + public const TEMPLATE_TYPE = 'SitemapCustomTemplate'; - const CACHE_KEY = 'seomatic_sitemap_'; + public const CACHE_KEY = 'seomatic_sitemap_'; - const SITEMAP_CACHE_TAG = 'seomatic_sitemap_'; + public const SITEMAP_CACHE_TAG = 'seomatic_sitemap_'; - const CUSTOM_HANDLE = 'custom'; + public const CUSTOM_HANDLE = 'custom'; - const CUSTOM_SCOPE = 'global'; + public const CUSTOM_SCOPE = 'global'; // Static Methods // ========================================================================= @@ -131,7 +131,7 @@ public function render(array $params = []): string ], ]); - 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 ) { @@ -177,7 +177,7 @@ public function render(array $params = []): string ); $dateUpdated = $additionalSitemapUrl['lastmod'] ?? $metaBundle->metaSiteVars->additionalSitemapUrlsDateUpdated - ?? new DateTime; + ?? new DateTime(); $lines[] = ''; // Standard sitemap key/values $lines[] = ''; diff --git a/src/models/SitemapIndexTemplate.php b/src/models/SitemapIndexTemplate.php index 6bcc3613f..0021adc3c 100644 --- a/src/models/SitemapIndexTemplate.php +++ b/src/models/SitemapIndexTemplate.php @@ -54,13 +54,13 @@ class SitemapIndexTemplate extends FrontendTemplate implements SitemapInterface * }); * ``` */ - const EVENT_REGISTER_SITEMAPS = 'registerSitemaps'; + public const EVENT_REGISTER_SITEMAPS = 'registerSitemaps'; - const TEMPLATE_TYPE = 'SitemapIndexTemplate'; + public const TEMPLATE_TYPE = 'SitemapIndexTemplate'; - const CACHE_KEY = 'seomatic_sitemap_index'; + public const CACHE_KEY = 'seomatic_sitemap_index'; - const SITEMAP_INDEX_CACHE_TAG = 'seomatic_sitemap_index'; + public const SITEMAP_INDEX_CACHE_TAG = 'seomatic_sitemap_index'; // Static Methods // ========================================================================= @@ -150,7 +150,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__ @@ -274,7 +274,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[] = ''; @@ -316,7 +316,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 b4833ddce..a3dc3d980 100644 --- a/src/models/SitemapTemplate.php +++ b/src/models/SitemapTemplate.php @@ -32,15 +32,15 @@ class SitemapTemplate extends FrontendTemplate implements SitemapInterface // Constants // ========================================================================= - const TEMPLATE_TYPE = 'SitemapTemplate'; + public const TEMPLATE_TYPE = 'SitemapTemplate'; - const CACHE_KEY = 'seomatic_sitemap_'; + public const CACHE_KEY = 'seomatic_sitemap_'; - const QUEUE_JOB_CACHE_KEY = 'seomatic_sitemap_queue_job_'; + public const QUEUE_JOB_CACHE_KEY = 'seomatic_sitemap_queue_job_'; - const SITEMAP_CACHE_TAG = 'seomatic_sitemap_'; + public const SITEMAP_CACHE_TAG = 'seomatic_sitemap_'; - const FILE_TYPES = [ + public const FILE_TYPES = [ 'excel', 'pdf', 'illustrator', @@ -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 4cf559cb5..6070288e2 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 string $schemaTypeName = 'AMRadioChannel'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/AMRadioChannel'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'RadioChannel'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'AMRadioChannel'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/AMRadioChannel'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'RadioChannel'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 431558f9f..d7856d172 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 string $schemaTypeName = 'APIReference'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'APIReference'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/APIReference'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/APIReference'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'TechArticle'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'TechArticle'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'Reference documentation for application programming interfaces (APIs).'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 48fc4fd00..5789b3c8c 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 string $schemaTypeName = 'Abdomen'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Abdomen'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'PhysicalExam'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Abdomen'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Abdomen'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'PhysicalExam'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 ef4e0a988..19ef3a40e 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 string $schemaTypeName = 'AboutPage'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'AboutPage'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/AboutPage'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/AboutPage'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'WebPage'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'WebPage'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'Web page type: About page.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 b17c34358..bbb197979 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 string $schemaTypeName = 'AcceptAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/AcceptAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'AllocateAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'AcceptAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/AcceptAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'AllocateAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 1b816e4f9..eb01b066f 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 string $schemaTypeName = 'Accommodation'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Accommodation'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Accommodation'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Accommodation'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Place'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Place'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 2a152503e..11b07e101 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 string $schemaTypeName = 'AccountingService'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'AccountingService'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/AccountingService'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/AccountingService'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'FinancialService'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'FinancialService'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 38f618e32..f4021a592 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 string $schemaTypeName = 'AchieveAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/AchieveAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Action'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'AchieveAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/AchieveAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Action'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 6a2bbd594..938a661c7 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 string $schemaTypeName = 'Action'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Action'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Thing'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Action'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Action'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Thing'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 331ad525c..da5038272 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 string $schemaTypeName = 'ActionAccessSpecification'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ActionAccessSpecification'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'ActionAccessSpecification'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ActionAccessSpecification'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 afa891de6..78820fe82 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 string $schemaTypeName = 'ActionStatusType'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ActionStatusType'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'StatusEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'ActionStatusType'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ActionStatusType'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'StatusEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 16348aa98..b66c964cc 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 string $schemaTypeName = 'ActivateAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ActivateAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'ControlAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'ActivateAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ActivateAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'ControlAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 5e464d7dc..8725c4af7 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 string $schemaTypeName = 'ActivationFee'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ActivationFee'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'PriceComponentTypeEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'ActivationFee'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ActivationFee'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'PriceComponentTypeEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 c0547a9fe..9b1852ff3 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 string $schemaTypeName = 'ActiveActionStatus'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ActiveActionStatus'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'ActionStatusType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'ActiveActionStatus'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ActiveActionStatus'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'ActionStatusType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 4a3e60fab..7121f1e8b 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 string $schemaTypeName = 'ActiveNotRecruiting'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ActiveNotRecruiting'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalStudyStatus'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'ActiveNotRecruiting'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ActiveNotRecruiting'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalStudyStatus'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 f47186a71..2e599c046 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 string $schemaTypeName = 'AddAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/AddAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'UpdateAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'AddAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/AddAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'UpdateAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 993542dea..55208aca2 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 string $schemaTypeName = 'AdministrativeArea'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/AdministrativeArea'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Place'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'AdministrativeArea'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/AdministrativeArea'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Place'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 6c97ebb40..4aee7b530 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 string $schemaTypeName = 'AdultEntertainment'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'AdultEntertainment'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/AdultEntertainment'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/AdultEntertainment'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'EntertainmentBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'EntertainmentBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'An adult entertainment establishment.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 6c1935623..8a2277c0a 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 string $schemaTypeName = 'AdultOrientedEnumeration'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/AdultOrientedEnumeration'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Enumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'AdultOrientedEnumeration'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/AdultOrientedEnumeration'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Enumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 86de88d1f..4dbc0e6de 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 string $schemaTypeName = 'AdvertiserContentArticle'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'AdvertiserContentArticle'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/AdvertiserContentArticle'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/AdvertiserContentArticle'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Article'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Article'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 a3fd4d224..94eee159f 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 string $schemaTypeName = 'AerobicActivity'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/AerobicActivity'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'PhysicalActivityCategory'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'AerobicActivity'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/AerobicActivity'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'PhysicalActivityCategory'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 b11d84208..c7c55cf37 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 string $schemaTypeName = 'AggregateOffer'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'AggregateOffer'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/AggregateOffer'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/AggregateOffer'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Offer'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Offer'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 8fe598017..a551635b2 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 string $schemaTypeName = 'AggregateRating'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/AggregateRating'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Rating'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'AggregateRating'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/AggregateRating'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Rating'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 855f10baf..e7d9cc7ac 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 string $schemaTypeName = 'AgreeAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/AgreeAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'ReactAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'AgreeAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/AgreeAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'ReactAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 3f01d23e2..cd17bad2c 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 string $schemaTypeName = 'Airline'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Airline'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Airline'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Airline'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Organization'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Organization'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'An organization that provides flights for passengers.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 66ea3ee23..1fa28d6d5 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 string $schemaTypeName = 'Airport'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Airport'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CivicStructure'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Airport'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Airport'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CivicStructure'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 123786522..e4c561440 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 string $schemaTypeName = 'AlbumRelease'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/AlbumRelease'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MusicAlbumReleaseType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'AlbumRelease'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/AlbumRelease'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MusicAlbumReleaseType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 c9f25580e..5d0687258 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 string $schemaTypeName = 'AlcoholConsideration'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/AlcoholConsideration'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'AdultOrientedEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'AlcoholConsideration'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/AlcoholConsideration'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'AdultOrientedEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 2a228c572..f49935482 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 string $schemaTypeName = 'AlignmentObject'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/AlignmentObject'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'AlignmentObject'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/AlignmentObject'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 813edae3b..b284944e8 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 string $schemaTypeName = 'AllWheelDriveConfiguration'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/AllWheelDriveConfiguration'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'DriveWheelConfigurationValue'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'AllWheelDriveConfiguration'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/AllWheelDriveConfiguration'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'DriveWheelConfigurationValue'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 97f7dfe86..b51600130 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 string $schemaTypeName = 'AllergiesHealthAspect'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/AllergiesHealthAspect'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'HealthAspectEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'AllergiesHealthAspect'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/AllergiesHealthAspect'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'HealthAspectEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 5f4b9674f..f47c9f218 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 string $schemaTypeName = 'AllocateAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/AllocateAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'OrganizeAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'AllocateAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/AllocateAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'OrganizeAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 cfec14639..5c242466f 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 string $schemaTypeName = 'AmpStory'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'AmpStory'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/AmpStory'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/AmpStory'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MediaObject'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MediaObject'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 17163e68a..1cc592a55 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 string $schemaTypeName = 'AmusementPark'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'AmusementPark'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/AmusementPark'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/AmusementPark'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'EntertainmentBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'EntertainmentBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'An amusement park.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 cc4dc38d5..b380560c5 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 string $schemaTypeName = 'AnaerobicActivity'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/AnaerobicActivity'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'PhysicalActivityCategory'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'AnaerobicActivity'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/AnaerobicActivity'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'PhysicalActivityCategory'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 a98b2c505..15648ec2c 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 string $schemaTypeName = 'AnalysisNewsArticle'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'AnalysisNewsArticle'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/AnalysisNewsArticle'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/AnalysisNewsArticle'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'NewsArticle'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'NewsArticle'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 ebfad85bb..9adc9df04 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 string $schemaTypeName = 'AnatomicalStructure'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/AnatomicalStructure'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalEntity'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'AnatomicalStructure'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/AnatomicalStructure'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalEntity'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 1fa53cfd2..fa041ff01 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 string $schemaTypeName = 'AnatomicalSystem'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/AnatomicalSystem'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalEntity'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'AnatomicalSystem'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/AnatomicalSystem'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalEntity'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 7dd0962e2..0714438ee 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 string $schemaTypeName = 'AndroidPlatform'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/AndroidPlatform'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'DigitalPlatformEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'AndroidPlatform'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/AndroidPlatform'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'DigitalPlatformEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 e2263092f..6eb17b572 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 string $schemaTypeName = 'Anesthesia'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Anesthesia'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalSpecialty'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Anesthesia'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Anesthesia'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalSpecialty'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 37df9eecc..7541ad449 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 string $schemaTypeName = 'AnimalShelter'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'AnimalShelter'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/AnimalShelter'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/AnimalShelter'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'LocalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'LocalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'Animal shelter.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 49eda732e..8bc00976b 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 string $schemaTypeName = 'Answer'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Answer'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Answer'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Answer'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Comment'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Comment'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'An answer offered to a question; perhaps correct, perhaps opinionated or wrong.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 8c28237a7..be2e8f588 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 string $schemaTypeName = 'Apartment'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Apartment'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Apartment'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Apartment'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Accommodation'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Accommodation'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 b0ba9ab5e..3101de5f5 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 string $schemaTypeName = 'ApartmentComplex'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ApartmentComplex'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Residence'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'ApartmentComplex'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ApartmentComplex'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Residence'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 9ed834cc6..38f3c1949 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 string $schemaTypeName = 'Appearance'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Appearance'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'PhysicalExam'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Appearance'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Appearance'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'PhysicalExam'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 29b46ad25..b75e69ca2 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 string $schemaTypeName = 'AppendAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/AppendAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'InsertAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'AppendAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/AppendAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'InsertAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 9bf1dbc06..c10cc0cbe 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 string $schemaTypeName = 'ApplyAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ApplyAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'OrganizeAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'ApplyAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ApplyAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'OrganizeAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 3b84ffcb5..be6f211f2 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 string $schemaTypeName = 'ApprovedIndication'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ApprovedIndication'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalIndication'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'ApprovedIndication'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ApprovedIndication'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalIndication'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 c02bbcfa2..297bbdbc8 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 string $schemaTypeName = 'Aquarium'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Aquarium'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CivicStructure'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Aquarium'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Aquarium'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CivicStructure'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 201ec06fa..c4a96ebd6 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 string $schemaTypeName = 'ArchiveComponent'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'ArchiveComponent'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ArchiveComponent'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ArchiveComponent'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 cc2580530..f808243cf 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 string $schemaTypeName = 'ArchiveOrganization'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'ArchiveOrganization'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ArchiveOrganization'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ArchiveOrganization'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'LocalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'LocalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 8274a0013..8171d7863 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 string $schemaTypeName = 'ArriveAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ArriveAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MoveAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'ArriveAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ArriveAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MoveAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 ddda7423f..e415c8e27 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 string $schemaTypeName = 'ArtGallery'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'ArtGallery'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ArtGallery'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ArtGallery'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'EntertainmentBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'EntertainmentBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'An art gallery.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 3b69a399d..12d86c1b2 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 string $schemaTypeName = 'Artery'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Artery'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Vessel'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Artery'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Artery'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Vessel'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 85db874fa..39a30a59b 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 string $schemaTypeName = 'Article'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Article'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Article'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Article'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 8bd5e1506..5eb369cb3 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 string $schemaTypeName = 'AskAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/AskAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CommunicateAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'AskAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/AskAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CommunicateAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 7b7ec25d7..bc5fd5030 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 string $schemaTypeName = 'AskPublicNewsArticle'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'AskPublicNewsArticle'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/AskPublicNewsArticle'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/AskPublicNewsArticle'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'NewsArticle'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'NewsArticle'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 6c3c7bd00..fa6506d00 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 string $schemaTypeName = 'AssessAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/AssessAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Action'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'AssessAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/AssessAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Action'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 8563e3988..b701254bd 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 string $schemaTypeName = 'AssignAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/AssignAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'AllocateAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'AssignAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/AssignAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'AllocateAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 e316b54ed..31189405c 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 string $schemaTypeName = 'Atlas'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Atlas'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Atlas'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Atlas'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 e7b96688e..e503cd519 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 string $schemaTypeName = 'Attorney'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Attorney'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Attorney'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Attorney'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'LegalService'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'LegalService'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 7abe3d875..d6016fb37 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 string $schemaTypeName = 'Audience'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Audience'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Audience'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Audience'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 5d1faddb1..046f72660 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 string $schemaTypeName = 'AudioObject'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'AudioObject'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/AudioObject'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/AudioObject'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MediaObject'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MediaObject'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'An audio file.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 2bc7d6e79..777491660 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 string $schemaTypeName = 'AudioObjectSnapshot'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'AudioObjectSnapshot'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/AudioObjectSnapshot'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/AudioObjectSnapshot'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'AudioObject'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'AudioObject'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 22836d8a4..92db53d3e 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 string $schemaTypeName = 'Audiobook'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Audiobook'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Audiobook'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Audiobook'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'AudioObject'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'AudioObject'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'An audiobook.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 556e48596..f7c6a7ab9 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 string $schemaTypeName = 'AudiobookFormat'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/AudiobookFormat'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'BookFormatType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'AudiobookFormat'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/AudiobookFormat'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'BookFormatType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 7d6cfc89a..fbf5b2404 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 string $schemaTypeName = 'AuthoritativeLegalValue'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/AuthoritativeLegalValue'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'LegalValueLevel'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'AuthoritativeLegalValue'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/AuthoritativeLegalValue'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'LegalValueLevel'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 4540866b6..a80901f32 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 string $schemaTypeName = 'AuthorizeAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/AuthorizeAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'AllocateAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'AuthorizeAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/AuthorizeAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'AllocateAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 2bcc33f4f..71f72b7a6 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 string $schemaTypeName = 'AutoBodyShop'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'AutoBodyShop'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/AutoBodyShop'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/AutoBodyShop'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'AutomotiveBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'AutomotiveBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'Auto body shop.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 5eb6cf3ec..3d795a93c 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 string $schemaTypeName = 'AutoDealer'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'AutoDealer'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/AutoDealer'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/AutoDealer'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'AutomotiveBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'AutomotiveBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'An car dealership.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 6daa5c0ec..c0ab5daa4 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 string $schemaTypeName = 'AutoPartsStore'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'AutoPartsStore'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/AutoPartsStore'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/AutoPartsStore'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Store'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Store'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'An auto parts store.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 c316a44d6..c966fa907 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 string $schemaTypeName = 'AutoRental'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'AutoRental'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/AutoRental'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/AutoRental'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'AutomotiveBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'AutomotiveBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A car rental business.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 2311b9d0d..fd76d67e9 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 string $schemaTypeName = 'AutoRepair'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'AutoRepair'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/AutoRepair'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/AutoRepair'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'AutomotiveBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'AutomotiveBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'Car repair business.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 401dcc66e..be7827fb4 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 string $schemaTypeName = 'AutoWash'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'AutoWash'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/AutoWash'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/AutoWash'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'AutomotiveBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'AutomotiveBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A car wash business.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 3d02b72bc..ee08ce7c5 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 string $schemaTypeName = 'AutomatedTeller'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'AutomatedTeller'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/AutomatedTeller'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/AutomatedTeller'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'FinancialService'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'FinancialService'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'ATM/cash machine.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 73d83396c..569088a4e 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 string $schemaTypeName = 'AutomotiveBusiness'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'AutomotiveBusiness'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/AutomotiveBusiness'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/AutomotiveBusiness'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'LocalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'LocalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'Car repair, sales, or parts.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 646d06b9b..9d4cea0ef 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 string $schemaTypeName = 'Ayurvedic'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Ayurvedic'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicineSystem'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Ayurvedic'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Ayurvedic'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicineSystem'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 e8eafc75f..2b766a9bb 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 string $schemaTypeName = 'BackOrder'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/BackOrder'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'ItemAvailability'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'BackOrder'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/BackOrder'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'ItemAvailability'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 bc62915aa..265e68b08 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 string $schemaTypeName = 'BackgroundNewsArticle'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'BackgroundNewsArticle'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/BackgroundNewsArticle'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/BackgroundNewsArticle'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'NewsArticle'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'NewsArticle'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 7a673794f..ba48281a7 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 string $schemaTypeName = 'Bacteria'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Bacteria'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'InfectiousAgentClass'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Bacteria'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Bacteria'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'InfectiousAgentClass'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 2a2439a2e..6b7c0943e 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 string $schemaTypeName = 'Bakery'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Bakery'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Bakery'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Bakery'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'FoodEstablishment'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'FoodEstablishment'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A bakery.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 b73422cb4..70ad008cd 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 string $schemaTypeName = 'Balance'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Balance'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'PhysicalActivityCategory'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Balance'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Balance'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'PhysicalActivityCategory'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 3f4449ff1..356690958 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 string $schemaTypeName = 'BankAccount'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/BankAccount'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'FinancialProduct'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'BankAccount'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/BankAccount'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'FinancialProduct'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 33dd7bd13..2f9880109 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 string $schemaTypeName = 'BankOrCreditUnion'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'BankOrCreditUnion'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/BankOrCreditUnion'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/BankOrCreditUnion'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'FinancialService'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'FinancialService'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'Bank or credit union.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 52a7025b4..ad6bdfadd 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 string $schemaTypeName = 'BarOrPub'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'BarOrPub'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/BarOrPub'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/BarOrPub'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'FoodEstablishment'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'FoodEstablishment'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A bar or pub.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 67e909934..77e3f3e75 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 string $schemaTypeName = 'Barcode'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Barcode'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Barcode'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Barcode'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'ImageObject'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'ImageObject'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 0d5e3bcd6..241df676d 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 string $schemaTypeName = 'BasicIncome'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/BasicIncome'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'GovernmentBenefitsType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'BasicIncome'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/BasicIncome'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'GovernmentBenefitsType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 66a26e7f4..5f79f7abf 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 string $schemaTypeName = 'Beach'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Beach'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CivicStructure'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Beach'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Beach'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CivicStructure'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 044b5d35f..7dbd00911 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 string $schemaTypeName = 'BeautySalon'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'BeautySalon'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/BeautySalon'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/BeautySalon'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'HealthAndBeautyBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'HealthAndBeautyBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'Beauty salon.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 be0991c1b..d57b4a451 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 string $schemaTypeName = 'BedAndBreakfast'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'BedAndBreakfast'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/BedAndBreakfast'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/BedAndBreakfast'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'LodgingBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'LodgingBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 1eda56c87..df5beba0e 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 string $schemaTypeName = 'BedDetails'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/BedDetails'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'BedDetails'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/BedDetails'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 77725e7e7..b91de446f 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 string $schemaTypeName = 'BedType'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/BedType'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'QualitativeValue'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'BedType'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/BedType'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'QualitativeValue'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 c9bcbc052..9f4d46c2d 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 string $schemaTypeName = 'BefriendAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/BefriendAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'InteractAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'BefriendAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/BefriendAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'InteractAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 30376e0ee..3d9f6eccc 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 string $schemaTypeName = 'BenefitsHealthAspect'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/BenefitsHealthAspect'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'HealthAspectEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'BenefitsHealthAspect'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/BenefitsHealthAspect'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'HealthAspectEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 6b34b713c..1d3fbeeae 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 string $schemaTypeName = 'BikeStore'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'BikeStore'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/BikeStore'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/BikeStore'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Store'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Store'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A bike store.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 e31040810..43cdda355 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 string $schemaTypeName = 'BioChemEntity'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/BioChemEntity'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Thing'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'BioChemEntity'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/BioChemEntity'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Thing'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 0a8b23e52..8b17db885 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 string $schemaTypeName = 'Blog'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Blog'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Blog'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Blog'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 840f99cd3..b77bfcdec 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 string $schemaTypeName = 'BlogPosting'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'BlogPosting'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/BlogPosting'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/BlogPosting'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'SocialMediaPosting'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'SocialMediaPosting'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A blog post.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 8889213eb..9284e1482 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 string $schemaTypeName = 'BloodTest'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/BloodTest'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalTest'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'BloodTest'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/BloodTest'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalTest'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 9ed7edf3d..1c714d41d 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 string $schemaTypeName = 'BoardingPolicyType'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/BoardingPolicyType'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Enumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'BoardingPolicyType'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/BoardingPolicyType'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Enumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 3581e8ed4..f21978a43 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 string $schemaTypeName = 'BoatReservation'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/BoatReservation'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Reservation'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'BoatReservation'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/BoatReservation'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Reservation'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 53ea3606b..a76072796 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 string $schemaTypeName = 'BoatTerminal'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/BoatTerminal'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CivicStructure'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'BoatTerminal'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/BoatTerminal'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CivicStructure'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 c4e92097a..e4936e2bd 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 string $schemaTypeName = 'BoatTrip'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/BoatTrip'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Trip'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'BoatTrip'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/BoatTrip'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Trip'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 e104faeb7..b9fc32a06 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 string $schemaTypeName = 'BodyMeasurementArm'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/BodyMeasurementArm'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'BodyMeasurementTypeEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'BodyMeasurementArm'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/BodyMeasurementArm'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'BodyMeasurementTypeEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 2dde02d0a..9fb3cb927 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 string $schemaTypeName = 'BodyMeasurementBust'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/BodyMeasurementBust'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'BodyMeasurementTypeEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'BodyMeasurementBust'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/BodyMeasurementBust'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'BodyMeasurementTypeEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 d7c8c4e81..8a05b9b9d 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 string $schemaTypeName = 'BodyMeasurementChest'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/BodyMeasurementChest'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'BodyMeasurementTypeEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'BodyMeasurementChest'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/BodyMeasurementChest'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'BodyMeasurementTypeEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 de1782a38..ad860f4f7 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 string $schemaTypeName = 'BodyMeasurementFoot'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/BodyMeasurementFoot'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'BodyMeasurementTypeEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'BodyMeasurementFoot'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/BodyMeasurementFoot'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'BodyMeasurementTypeEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 d636b5390..7d32574e5 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 string $schemaTypeName = 'BodyMeasurementHand'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/BodyMeasurementHand'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'BodyMeasurementTypeEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'BodyMeasurementHand'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/BodyMeasurementHand'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'BodyMeasurementTypeEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 46475dbba..9c47e3f7d 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 string $schemaTypeName = 'BodyMeasurementHead'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/BodyMeasurementHead'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'BodyMeasurementTypeEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'BodyMeasurementHead'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/BodyMeasurementHead'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'BodyMeasurementTypeEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 630887f8a..3fa3ec62a 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 string $schemaTypeName = 'BodyMeasurementHeight'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/BodyMeasurementHeight'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'BodyMeasurementTypeEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'BodyMeasurementHeight'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/BodyMeasurementHeight'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'BodyMeasurementTypeEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 67b7eb84c..fbff5693f 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 string $schemaTypeName = 'BodyMeasurementHips'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/BodyMeasurementHips'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'BodyMeasurementTypeEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'BodyMeasurementHips'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/BodyMeasurementHips'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'BodyMeasurementTypeEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 41e6b168c..de1c15ae1 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 string $schemaTypeName = 'BodyMeasurementInsideLeg'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/BodyMeasurementInsideLeg'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'BodyMeasurementTypeEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'BodyMeasurementInsideLeg'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/BodyMeasurementInsideLeg'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'BodyMeasurementTypeEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 074adeb2f..0947f487e 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 string $schemaTypeName = 'BodyMeasurementNeck'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/BodyMeasurementNeck'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'BodyMeasurementTypeEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'BodyMeasurementNeck'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/BodyMeasurementNeck'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'BodyMeasurementTypeEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 2687206ca..68d9cf6ff 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 string $schemaTypeName = 'BodyMeasurementTypeEnumeration'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/BodyMeasurementTypeEnumeration'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MeasurementTypeEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'BodyMeasurementTypeEnumeration'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/BodyMeasurementTypeEnumeration'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MeasurementTypeEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 edcec05ca..a75ddf585 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 string $schemaTypeName = 'BodyMeasurementUnderbust'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/BodyMeasurementUnderbust'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'BodyMeasurementTypeEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'BodyMeasurementUnderbust'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/BodyMeasurementUnderbust'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'BodyMeasurementTypeEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 4d360fc81..461eebacd 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 string $schemaTypeName = 'BodyMeasurementWaist'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/BodyMeasurementWaist'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'BodyMeasurementTypeEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'BodyMeasurementWaist'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/BodyMeasurementWaist'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'BodyMeasurementTypeEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 dd73337c5..c7e9411d1 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 string $schemaTypeName = 'BodyMeasurementWeight'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/BodyMeasurementWeight'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'BodyMeasurementTypeEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'BodyMeasurementWeight'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/BodyMeasurementWeight'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'BodyMeasurementTypeEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 3eb70c99a..173fcaa24 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 string $schemaTypeName = 'BodyOfWater'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/BodyOfWater'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Landform'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'BodyOfWater'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/BodyOfWater'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Landform'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 b29f7c49a..5d6cd9ce1 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 string $schemaTypeName = 'Bone'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Bone'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'AnatomicalStructure'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Bone'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Bone'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'AnatomicalStructure'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 e84779b74..be127ad9f 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 string $schemaTypeName = 'Book'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Book'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Book'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Book'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A book.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 15b122055..55fdd3720 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 string $schemaTypeName = 'BookFormatType'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/BookFormatType'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Enumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'BookFormatType'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/BookFormatType'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Enumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 e9697febc..14b31d04d 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 string $schemaTypeName = 'BookSeries'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'BookSeries'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/BookSeries'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/BookSeries'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CreativeWorkSeries'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CreativeWorkSeries'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A series of books. Included books can be indicated with the hasPart property.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 e5efe86e3..f995d8262 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 string $schemaTypeName = 'BookStore'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'BookStore'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/BookStore'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/BookStore'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Store'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Store'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A bookstore.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 22b58a168..f89d501d8 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 string $schemaTypeName = 'BookmarkAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/BookmarkAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'OrganizeAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'BookmarkAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/BookmarkAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'OrganizeAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 5898f269a..9dd362042 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 string $schemaTypeName = 'Boolean'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Boolean'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Thing'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Boolean'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Boolean'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Thing'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 608c90ed4..0033f93d7 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 string $schemaTypeName = 'BorrowAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/BorrowAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'TransferAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'BorrowAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/BorrowAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'TransferAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 fbc4392ad..eb4248259 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 string $schemaTypeName = 'BowlingAlley'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'BowlingAlley'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/BowlingAlley'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/BowlingAlley'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'SportsActivityLocation'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'SportsActivityLocation'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A bowling alley.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 035f13546..871ef547f 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 string $schemaTypeName = 'BrainStructure'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/BrainStructure'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'AnatomicalStructure'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'BrainStructure'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/BrainStructure'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'AnatomicalStructure'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 10a9ef116..baeb70a76 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 string $schemaTypeName = 'Brand'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Brand'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Brand'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Brand'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 03a401b4f..a319ec527 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 string $schemaTypeName = 'BreadcrumbList'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/BreadcrumbList'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'ItemList'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'BreadcrumbList'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/BreadcrumbList'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'ItemList'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 c03e892b1..8eb250cf7 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 string $schemaTypeName = 'Brewery'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Brewery'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Brewery'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Brewery'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'FoodEstablishment'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'FoodEstablishment'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'Brewery.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 3c4d8a5ce..a045f96fa 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 string $schemaTypeName = 'Bridge'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Bridge'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CivicStructure'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Bridge'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Bridge'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CivicStructure'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 77de9eaa5..3a6ee2848 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 string $schemaTypeName = 'BroadcastChannel'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/BroadcastChannel'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'BroadcastChannel'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/BroadcastChannel'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 d6c7c4201..e7c0cd5fb 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 string $schemaTypeName = 'BroadcastEvent'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/BroadcastEvent'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'PublicationEvent'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'BroadcastEvent'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/BroadcastEvent'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'PublicationEvent'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 18975e1f9..34eea5f16 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 string $schemaTypeName = 'BroadcastFrequencySpecification'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/BroadcastFrequencySpecification'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'BroadcastFrequencySpecification'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/BroadcastFrequencySpecification'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 7f0bb053f..3a5d94e89 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 string $schemaTypeName = 'BroadcastRelease'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/BroadcastRelease'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MusicAlbumReleaseType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'BroadcastRelease'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/BroadcastRelease'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MusicAlbumReleaseType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 44f9e6b25..9a8d894ca 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 string $schemaTypeName = 'BroadcastService'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/BroadcastService'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Service'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'BroadcastService'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/BroadcastService'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Service'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 d454d126c..0a40337a5 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 string $schemaTypeName = 'BrokerageAccount'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/BrokerageAccount'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'InvestmentOrDeposit'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'BrokerageAccount'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/BrokerageAccount'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'InvestmentOrDeposit'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 08733e4e3..50899c5e9 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 string $schemaTypeName = 'BuddhistTemple'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/BuddhistTemple'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'PlaceOfWorship'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'BuddhistTemple'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/BuddhistTemple'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'PlaceOfWorship'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 a2dce3f81..3bbd9022c 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 string $schemaTypeName = 'BusOrCoach'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'BusOrCoach'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/BusOrCoach'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/BusOrCoach'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Vehicle'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Vehicle'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 4ea19fda3..53e4a61f5 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 string $schemaTypeName = 'BusReservation'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/BusReservation'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Reservation'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'BusReservation'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/BusReservation'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Reservation'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 a83a270d7..9e45fe2b4 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 string $schemaTypeName = 'BusStation'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/BusStation'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CivicStructure'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'BusStation'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/BusStation'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CivicStructure'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 4793695c3..51f794e42 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 string $schemaTypeName = 'BusStop'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/BusStop'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CivicStructure'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'BusStop'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/BusStop'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CivicStructure'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 6b57a5700..fa8c1cf81 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 string $schemaTypeName = 'BusTrip'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/BusTrip'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Trip'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'BusTrip'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/BusTrip'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Trip'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 ff9c483dd..94908aa06 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 string $schemaTypeName = 'BusinessAudience'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/BusinessAudience'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Audience'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'BusinessAudience'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/BusinessAudience'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Audience'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 980cdba1f..3a7178f8b 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 string $schemaTypeName = 'BusinessEntityType'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/BusinessEntityType'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Enumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'BusinessEntityType'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/BusinessEntityType'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Enumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 a04fb1cfa..85dc8df1b 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 string $schemaTypeName = 'BusinessEvent'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/BusinessEvent'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Event'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'BusinessEvent'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/BusinessEvent'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Event'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 7be7c737b..617115d51 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 string $schemaTypeName = 'BusinessFunction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/BusinessFunction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Enumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'BusinessFunction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/BusinessFunction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Enumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 6f14d381f..b2b705d71 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 string $schemaTypeName = 'BusinessSupport'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/BusinessSupport'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'GovernmentBenefitsType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'BusinessSupport'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/BusinessSupport'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'GovernmentBenefitsType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 35c843c76..3a795c715 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 string $schemaTypeName = 'BuyAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/BuyAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'TradeAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'BuyAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/BuyAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'TradeAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 0466f6e20..274147454 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 string $schemaTypeName = 'CDCPMDRecord'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/CDCPMDRecord'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'StructuredValue'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'CDCPMDRecord'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/CDCPMDRecord'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'StructuredValue'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 75ead45d8..54bb0bb87 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 string $schemaTypeName = 'CDFormat'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/CDFormat'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MusicReleaseFormatType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'CDFormat'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/CDFormat'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MusicReleaseFormatType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 2f6406f9a..be8ba1214 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 string $schemaTypeName = 'CT'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/CT'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalImagingTechnique'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'CT'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/CT'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalImagingTechnique'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 bce96fee5..ea11f2a99 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 string $schemaTypeName = 'CableOrSatelliteService'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/CableOrSatelliteService'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Service'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'CableOrSatelliteService'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/CableOrSatelliteService'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Service'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 07b65b816..2aeed4dc9 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 string $schemaTypeName = 'CafeOrCoffeeShop'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'CafeOrCoffeeShop'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/CafeOrCoffeeShop'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/CafeOrCoffeeShop'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'FoodEstablishment'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'FoodEstablishment'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A cafe or coffee shop.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 1360dab60..5221df971 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 string $schemaTypeName = 'Campground'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Campground'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Campground'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Campground'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'LodgingBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'LodgingBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 20c2cca71..dfa95238d 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 string $schemaTypeName = 'CampingPitch'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'CampingPitch'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/CampingPitch'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/CampingPitch'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Accommodation'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Accommodation'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 e31142d20..ba9a5898c 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 string $schemaTypeName = 'Canal'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Canal'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'BodyOfWater'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Canal'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Canal'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'BodyOfWater'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 708c1f93a..c8c925d80 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 string $schemaTypeName = 'CancelAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/CancelAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'PlanAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'CancelAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/CancelAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'PlanAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 3b6b1492e..a409da549 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 string $schemaTypeName = 'Car'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Car'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Car'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Car'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Vehicle'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Vehicle'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A car is a wheeled, self-powered motor vehicle used for transportation.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 15bb9cfdb..459e2f679 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 string $schemaTypeName = 'CarUsageType'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/CarUsageType'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Enumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'CarUsageType'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/CarUsageType'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Enumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 5cc2e6f39..c3f1b35d3 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 string $schemaTypeName = 'Cardiovascular'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Cardiovascular'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalSpecialty'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Cardiovascular'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Cardiovascular'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalSpecialty'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 06f3577fa..9f93f7c55 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 string $schemaTypeName = 'CardiovascularExam'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/CardiovascularExam'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'PhysicalExam'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'CardiovascularExam'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/CardiovascularExam'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'PhysicalExam'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 143e5266b..04dfd5e06 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 string $schemaTypeName = 'CaseSeries'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/CaseSeries'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalObservationalStudyDesign'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'CaseSeries'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/CaseSeries'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalObservationalStudyDesign'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 69bba8153..43114cb65 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 string $schemaTypeName = 'Casino'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Casino'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Casino'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Casino'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'EntertainmentBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'EntertainmentBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A casino.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 5b90286f7..c4a7353d3 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 string $schemaTypeName = 'CassetteFormat'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/CassetteFormat'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MusicReleaseFormatType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'CassetteFormat'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/CassetteFormat'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MusicReleaseFormatType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 78ba158c9..9068db106 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 string $schemaTypeName = 'CategoryCode'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/CategoryCode'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'DefinedTerm'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'CategoryCode'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/CategoryCode'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'DefinedTerm'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 6a895571e..a32570ff7 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 string $schemaTypeName = 'CategoryCodeSet'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'CategoryCodeSet'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/CategoryCodeSet'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/CategoryCodeSet'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'DefinedTermSet'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'DefinedTermSet'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A set of Category Code values.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 cc96145e6..3aa7c0833 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 string $schemaTypeName = 'CatholicChurch'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/CatholicChurch'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Church'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'CatholicChurch'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/CatholicChurch'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Church'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 bdc9bffcd..b111890fa 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 string $schemaTypeName = 'CausesHealthAspect'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/CausesHealthAspect'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'HealthAspectEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'CausesHealthAspect'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/CausesHealthAspect'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'HealthAspectEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 e73521000..8b8d50bb3 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 string $schemaTypeName = 'Cemetery'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Cemetery'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CivicStructure'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Cemetery'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Cemetery'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CivicStructure'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 ffc6dc915..588b2ef20 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 string $schemaTypeName = 'Chapter'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Chapter'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Chapter'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Chapter'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 8b1d72df8..f8650c8f9 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 string $schemaTypeName = 'CharitableIncorporatedOrganization'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/CharitableIncorporatedOrganization'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'UKNonprofitType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'CharitableIncorporatedOrganization'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/CharitableIncorporatedOrganization'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'UKNonprofitType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 15f9217d1..7d7cb2fcd 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 string $schemaTypeName = 'CheckAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/CheckAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'FindAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'CheckAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/CheckAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'FindAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 23550a37c..1838e464f 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 string $schemaTypeName = 'CheckInAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/CheckInAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CommunicateAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'CheckInAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/CheckInAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CommunicateAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 465b03bcd..e298df4f6 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 string $schemaTypeName = 'CheckOutAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/CheckOutAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CommunicateAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'CheckOutAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/CheckOutAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CommunicateAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 489591b35..65dd5811d 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 string $schemaTypeName = 'CheckoutPage'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'CheckoutPage'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/CheckoutPage'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/CheckoutPage'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'WebPage'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'WebPage'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'Web page type: Checkout page.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 9e65053e9..c6f12235d 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 string $schemaTypeName = 'ChemicalSubstance'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ChemicalSubstance'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'BioChemEntity'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'ChemicalSubstance'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ChemicalSubstance'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'BioChemEntity'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 0da49c861..ec70cc0a9 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 string $schemaTypeName = 'ChildCare'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'ChildCare'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ChildCare'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ChildCare'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'LocalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'LocalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A Childcare center.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 8c8a04072..bb27c7bb5 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 string $schemaTypeName = 'ChildrensEvent'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ChildrensEvent'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Event'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'ChildrensEvent'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ChildrensEvent'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Event'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 9418765db..00364e7e8 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 string $schemaTypeName = 'Chiropractic'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Chiropractic'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicineSystem'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Chiropractic'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Chiropractic'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicineSystem'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 217dc231e..57f7c37f2 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 string $schemaTypeName = 'ChooseAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ChooseAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'AssessAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'ChooseAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ChooseAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'AssessAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 7ad3999d7..0c339bac8 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 string $schemaTypeName = 'Church'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Church'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'PlaceOfWorship'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Church'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Church'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'PlaceOfWorship'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 9ba39c287..6d78da7db 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 string $schemaTypeName = 'City'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/City'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'AdministrativeArea'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'City'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/City'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'AdministrativeArea'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 7d7152209..6a53d38f6 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 string $schemaTypeName = 'CityHall'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/CityHall'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'GovernmentBuilding'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'CityHall'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/CityHall'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'GovernmentBuilding'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 c85d14677..e2e3567f2 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 string $schemaTypeName = 'CivicStructure'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/CivicStructure'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Place'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'CivicStructure'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/CivicStructure'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Place'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 75b3a7b88..05b0dc4f0 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 string $schemaTypeName = 'Claim'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Claim'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Claim'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Claim'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 6c890432e..8d200eff3 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 string $schemaTypeName = 'ClaimReview'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'ClaimReview'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ClaimReview'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ClaimReview'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Review'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Review'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 278a858f7..b30e2ce8f 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 string $schemaTypeName = 'CleaningFee'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/CleaningFee'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'PriceComponentTypeEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'CleaningFee'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/CleaningFee'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'PriceComponentTypeEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 242754789..2328191db 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 string $schemaTypeName = 'Clinician'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Clinician'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalAudienceType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Clinician'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Clinician'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalAudienceType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 867793bc3..7c585e363 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 string $schemaTypeName = 'Clip'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Clip'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Clip'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Clip'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A short TV or radio program or a segment/part of a program.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 15b56e071..00fd7502d 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 string $schemaTypeName = 'ClothingStore'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'ClothingStore'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ClothingStore'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ClothingStore'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Store'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Store'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A clothing store.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 6fc6345ff..f68d7740a 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 string $schemaTypeName = 'CoOp'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/CoOp'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'GamePlayMode'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'CoOp'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/CoOp'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'GamePlayMode'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 6499f795f..4e982e29c 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 string $schemaTypeName = 'Code'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Code'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Code'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Code'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'Computer programming source code. Example: Full (compile ready) solutions, code snippet samples, scripts, templates.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 bfdea8ce4..b96db556e 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 string $schemaTypeName = 'CohortStudy'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/CohortStudy'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalObservationalStudyDesign'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'CohortStudy'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/CohortStudy'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalObservationalStudyDesign'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 cd303f217..a538a3df8 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 string $schemaTypeName = 'Collection'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Collection'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Collection'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Collection'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A collection of items, e.g. creative works or products.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 f9d06477d..97e69fcd1 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 string $schemaTypeName = 'CollectionPage'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'CollectionPage'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/CollectionPage'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/CollectionPage'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'WebPage'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'WebPage'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'Web page type: Collection page.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 ac30cb73b..208372ce2 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 string $schemaTypeName = 'CollegeOrUniversity'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'CollegeOrUniversity'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/CollegeOrUniversity'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/CollegeOrUniversity'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'EducationalOrganization'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'EducationalOrganization'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A college, university, or other third-level educational institution.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 8ed32160b..0f8ba91b2 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 string $schemaTypeName = 'ComedyClub'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'ComedyClub'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ComedyClub'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ComedyClub'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'EntertainmentBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'EntertainmentBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A comedy club.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 2ec7a062f..aba38407d 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 string $schemaTypeName = 'ComedyEvent'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ComedyEvent'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Event'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'ComedyEvent'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ComedyEvent'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Event'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 222d5ce08..a6b4952b9 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 string $schemaTypeName = 'ComicCoverArt'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'ComicCoverArt'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ComicCoverArt'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ComicCoverArt'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'ComicStory'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'ComicStory'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'The artwork on the cover of a comic.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 fbb6465ac..faa444832 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 string $schemaTypeName = 'ComicIssue'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'ComicIssue'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ComicIssue'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ComicIssue'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'PublicationIssue'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'PublicationIssue'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 e96cb7e6b..caacbe040 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 string $schemaTypeName = 'ComicSeries'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'ComicSeries'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ComicSeries'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ComicSeries'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Periodical'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Periodical'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 9f7b9d049..d71b473b7 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 string $schemaTypeName = 'ComicStory'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'ComicStory'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ComicStory'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ComicStory'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 7ea3182e6..b975170ff 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 string $schemaTypeName = 'Comment'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Comment'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Comment'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Comment'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 ff1c9b5fe..1ca961b4b 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 string $schemaTypeName = 'CommentAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/CommentAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CommunicateAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'CommentAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/CommentAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CommunicateAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 6ae7f0cc5..cb151d09d 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 string $schemaTypeName = 'CommentPermission'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/CommentPermission'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'DigitalDocumentPermissionType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'CommentPermission'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/CommentPermission'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'DigitalDocumentPermissionType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 2b212f5f1..0407dc5ad 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 string $schemaTypeName = 'CommunicateAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/CommunicateAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'InteractAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'CommunicateAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/CommunicateAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'InteractAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 dcd6c4b63..a4d653bdb 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 string $schemaTypeName = 'CommunityHealth'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'CommunityHealth'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/CommunityHealth'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/CommunityHealth'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 0ea5697c2..a97830f6d 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 string $schemaTypeName = 'CompilationAlbum'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/CompilationAlbum'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MusicAlbumProductionType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'CompilationAlbum'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/CompilationAlbum'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MusicAlbumProductionType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 630cfee60..245788acd 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 string $schemaTypeName = 'CompleteDataFeed'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'CompleteDataFeed'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/CompleteDataFeed'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/CompleteDataFeed'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'DataFeed'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'DataFeed'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 53fdf3ef5..c3ecd210f 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 string $schemaTypeName = 'Completed'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Completed'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalStudyStatus'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Completed'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Completed'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalStudyStatus'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 0c00d4cae..b90d1d317 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 string $schemaTypeName = 'CompletedActionStatus'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/CompletedActionStatus'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'ActionStatusType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'CompletedActionStatus'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/CompletedActionStatus'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'ActionStatusType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 3f750a046..de34d5e76 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 string $schemaTypeName = 'CompoundPriceSpecification'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/CompoundPriceSpecification'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'PriceSpecification'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'CompoundPriceSpecification'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/CompoundPriceSpecification'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'PriceSpecification'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 574591a5a..aa428a29b 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 string $schemaTypeName = 'ComputerLanguage'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ComputerLanguage'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'ComputerLanguage'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ComputerLanguage'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 6025cb1f8..821d6f55e 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 string $schemaTypeName = 'ComputerStore'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'ComputerStore'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ComputerStore'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ComputerStore'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Store'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Store'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A computer store.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 06b4c494a..cb1b21e69 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 string $schemaTypeName = 'ConfirmAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ConfirmAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'InformAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'ConfirmAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ConfirmAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'InformAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 fdf85c318..d29ec46c8 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 string $schemaTypeName = 'Consortium'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Consortium'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Consortium'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Consortium'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Organization'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Organization'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A Consortium is a membership [[Organization]] whose members are typically Organizations.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 6e41081f9..45049f84c 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 string $schemaTypeName = 'ConsumeAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ConsumeAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Action'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'ConsumeAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ConsumeAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Action'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 26341b6e7..639d811f5 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 string $schemaTypeName = 'ContactPage'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'ContactPage'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ContactPage'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ContactPage'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'WebPage'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'WebPage'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'Web page type: Contact page.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 576ffa3d9..02a148393 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 string $schemaTypeName = 'ContactPoint'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ContactPoint'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'StructuredValue'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'ContactPoint'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ContactPoint'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'StructuredValue'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 81b751992..549f7c688 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 string $schemaTypeName = 'ContactPointOption'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ContactPointOption'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Enumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'ContactPointOption'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ContactPointOption'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Enumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 e39e4e4d1..448a05270 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 string $schemaTypeName = 'ContagiousnessHealthAspect'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ContagiousnessHealthAspect'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'HealthAspectEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'ContagiousnessHealthAspect'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ContagiousnessHealthAspect'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'HealthAspectEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 afdc2c9f4..d014dfc91 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 string $schemaTypeName = 'Continent'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Continent'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Landform'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Continent'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Continent'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Landform'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 1f574e581..1f185930e 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 string $schemaTypeName = 'ControlAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ControlAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Action'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'ControlAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ControlAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Action'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 8cbee0ff8..9eea907da 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 string $schemaTypeName = 'ConvenienceStore'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'ConvenienceStore'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ConvenienceStore'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ConvenienceStore'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Store'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Store'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A convenience store.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 cfe72acf8..0ce10f035 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 string $schemaTypeName = 'Conversation'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Conversation'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Conversation'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Conversation'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 02cbc1528..6bd6953b6 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 string $schemaTypeName = 'CookAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/CookAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CreateAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'CookAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/CookAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CreateAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 3628da37e..2a48a85ce 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 string $schemaTypeName = 'Corporation'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Corporation'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Corporation'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Corporation'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Organization'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Organization'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'Organization: A business corporation.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 0d3206781..1b8151b80 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 string $schemaTypeName = 'CorrectionComment'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'CorrectionComment'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/CorrectionComment'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/CorrectionComment'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Comment'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Comment'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A [[comment]] that corrects [[CreativeWork]].'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 bbecca5c4..47038fc5f 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 string $schemaTypeName = 'Country'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Country'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'AdministrativeArea'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Country'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Country'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'AdministrativeArea'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 32199abf2..534140a3b 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 string $schemaTypeName = 'Course'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Course'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Course'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Course'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'LearningResource'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'LearningResource'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 636e251ed..2edce3d3d 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 string $schemaTypeName = 'CourseInstance'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/CourseInstance'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Event'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'CourseInstance'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/CourseInstance'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Event'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 ec8acf6f2..16a29fb0e 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 string $schemaTypeName = 'Courthouse'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Courthouse'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'GovernmentBuilding'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Courthouse'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Courthouse'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'GovernmentBuilding'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 099911ad5..1f88f88a7 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 string $schemaTypeName = 'CoverArt'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'CoverArt'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/CoverArt'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/CoverArt'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'VisualArtwork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'VisualArtwork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'The artwork on the outer surface of a CreativeWork.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 bde93ccbe..7f154730f 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 string $schemaTypeName = 'CovidTestingFacility'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'CovidTestingFacility'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/CovidTestingFacility'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/CovidTestingFacility'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalClinic'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalClinic'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 d6a44037e..3ec0b5f4e 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 string $schemaTypeName = 'CreateAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/CreateAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Action'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'CreateAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/CreateAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Action'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 22de62c1e..1c6b2b2db 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 string $schemaTypeName = 'CreativeWork'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'CreativeWork'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/CreativeWork'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/CreativeWork'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Thing'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Thing'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'The most generic kind of creative work, including books, movies, photographs, software programs, etc.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 7fdb6ef82..668dcfe5c 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 string $schemaTypeName = 'CreativeWorkSeason'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'CreativeWorkSeason'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/CreativeWorkSeason'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/CreativeWorkSeason'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A media season, e.g. TV, radio, video game etc.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 c94d0cb0e..e3186a9a6 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 string $schemaTypeName = 'CreativeWorkSeries'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'CreativeWorkSeries'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/CreativeWorkSeries'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/CreativeWorkSeries'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Series'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Series'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 90ce03a25..87795a7e4 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 string $schemaTypeName = 'CreditCard'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/CreditCard'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'PaymentCard'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'CreditCard'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/CreditCard'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'PaymentCard'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 eba339003..4212925b7 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 string $schemaTypeName = 'Crematorium'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Crematorium'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CivicStructure'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Crematorium'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Crematorium'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CivicStructure'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 5ec1e6bb8..4f99e9c8d 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 string $schemaTypeName = 'CriticReview'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'CriticReview'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/CriticReview'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/CriticReview'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Review'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Review'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 e4c86912d..cc5818bd1 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 string $schemaTypeName = 'CrossSectional'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/CrossSectional'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalObservationalStudyDesign'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'CrossSectional'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/CrossSectional'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalObservationalStudyDesign'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 efb7c7a39..18834ba74 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 string $schemaTypeName = 'CssSelectorType'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/CssSelectorType'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Text'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'CssSelectorType'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/CssSelectorType'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Text'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 6312620e3..a34891739 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 string $schemaTypeName = 'CurrencyConversionService'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/CurrencyConversionService'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'FinancialProduct'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'CurrencyConversionService'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/CurrencyConversionService'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'FinancialProduct'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 d78f18ac6..670207e13 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 string $schemaTypeName = 'DDxElement'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/DDxElement'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalIntangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'DDxElement'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/DDxElement'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalIntangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 5d4cd7182..995a46108 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 string $schemaTypeName = 'DJMixAlbum'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/DJMixAlbum'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MusicAlbumProductionType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'DJMixAlbum'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/DJMixAlbum'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MusicAlbumProductionType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 080b5c20f..cf7ebbf09 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 string $schemaTypeName = 'DVDFormat'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/DVDFormat'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MusicReleaseFormatType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'DVDFormat'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/DVDFormat'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MusicReleaseFormatType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 6c8b96195..5ee0d21d8 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 string $schemaTypeName = 'DamagedCondition'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/DamagedCondition'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'OfferItemCondition'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'DamagedCondition'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/DamagedCondition'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'OfferItemCondition'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 e178d1791..581ac5631 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 string $schemaTypeName = 'DanceEvent'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/DanceEvent'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Event'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'DanceEvent'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/DanceEvent'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Event'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 d7bf94471..9ad96e425 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 string $schemaTypeName = 'DanceGroup'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'DanceGroup'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/DanceGroup'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/DanceGroup'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'PerformingGroup'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'PerformingGroup'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A dance group—for example, the Alvin Ailey Dance Theater or Riverdance.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 e55125171..4cec098e7 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 string $schemaTypeName = 'DangerousGoodConsideration'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/DangerousGoodConsideration'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'AdultOrientedEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'DangerousGoodConsideration'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/DangerousGoodConsideration'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'AdultOrientedEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 d8346398e..02de13ac7 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 string $schemaTypeName = 'DataCatalog'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'DataCatalog'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/DataCatalog'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/DataCatalog'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A collection of datasets.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 7e8a959a3..279c45d89 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 string $schemaTypeName = 'DataDownload'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'DataDownload'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/DataDownload'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/DataDownload'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MediaObject'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MediaObject'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'All or part of a [[Dataset]] in downloadable form. '; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 7be9a4eda..9ca7e6c06 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 string $schemaTypeName = 'DataFeed'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'DataFeed'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/DataFeed'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/DataFeed'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Dataset'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Dataset'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A single feed providing structured information about one or more entities or topics.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 44a44a77f..d17d1abdb 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 string $schemaTypeName = 'DataFeedItem'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/DataFeedItem'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'DataFeedItem'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/DataFeedItem'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 ede8bb90a..840fc367e 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 string $schemaTypeName = 'DataType'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/DataType'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Thing'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'DataType'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/DataType'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Thing'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 4098947ee..6d68eec37 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 string $schemaTypeName = 'Dataset'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Dataset'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Dataset'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Dataset'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A body of structured information describing some topic(s) of interest.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 f5d9b9301..51cacaa41 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 string $schemaTypeName = 'Date'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Date'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Thing'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Date'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Date'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Thing'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 6c328c517..a978ecbad 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 string $schemaTypeName = 'DateTime'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/DateTime'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Thing'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'DateTime'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/DateTime'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Thing'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 dab8904ea..dbbfec613 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 string $schemaTypeName = 'DatedMoneySpecification'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/DatedMoneySpecification'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'StructuredValue'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'DatedMoneySpecification'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/DatedMoneySpecification'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'StructuredValue'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 35d026342..653583b6b 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 string $schemaTypeName = 'DayOfWeek'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/DayOfWeek'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Enumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'DayOfWeek'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/DayOfWeek'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Enumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 9fe841538..d889e8d74 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 string $schemaTypeName = 'DaySpa'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'DaySpa'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/DaySpa'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/DaySpa'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'HealthAndBeautyBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'HealthAndBeautyBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A day spa.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 3227981a6..5ec209834 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 string $schemaTypeName = 'DeactivateAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/DeactivateAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'ControlAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'DeactivateAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/DeactivateAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'ControlAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 207d82b81..d40b451e9 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 string $schemaTypeName = 'DecontextualizedContent'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/DecontextualizedContent'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MediaManipulationRatingEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'DecontextualizedContent'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/DecontextualizedContent'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MediaManipulationRatingEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 71504ad33..eaf6914f8 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 string $schemaTypeName = 'DefenceEstablishment'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/DefenceEstablishment'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'GovernmentBuilding'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'DefenceEstablishment'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/DefenceEstablishment'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'GovernmentBuilding'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 804ee90f4..7735a805c 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 string $schemaTypeName = 'DefinedRegion'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/DefinedRegion'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'StructuredValue'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'DefinedRegion'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/DefinedRegion'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'StructuredValue'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 a484659d9..74ad969f1 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 string $schemaTypeName = 'DefinedTerm'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/DefinedTerm'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'DefinedTerm'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/DefinedTerm'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 7be5b85a8..ea56e9a35 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 string $schemaTypeName = 'DefinedTermSet'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'DefinedTermSet'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/DefinedTermSet'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/DefinedTermSet'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 8ee009639..996c1d8e7 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 string $schemaTypeName = 'DefinitiveLegalValue'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/DefinitiveLegalValue'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'LegalValueLevel'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'DefinitiveLegalValue'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/DefinitiveLegalValue'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'LegalValueLevel'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 bef08879f..4378a2d8d 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 string $schemaTypeName = 'DeleteAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/DeleteAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'UpdateAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'DeleteAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/DeleteAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'UpdateAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 1acb34422..a5c955bda 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 string $schemaTypeName = 'DeliveryChargeSpecification'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/DeliveryChargeSpecification'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'PriceSpecification'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'DeliveryChargeSpecification'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/DeliveryChargeSpecification'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'PriceSpecification'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 b89c23dfc..55f598f1a 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 string $schemaTypeName = 'DeliveryEvent'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/DeliveryEvent'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Event'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'DeliveryEvent'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/DeliveryEvent'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Event'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 4b5f7c48f..335efac72 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 string $schemaTypeName = 'DeliveryMethod'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/DeliveryMethod'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Enumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'DeliveryMethod'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/DeliveryMethod'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Enumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 f79702a1c..6dda5fc3a 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 string $schemaTypeName = 'DeliveryTimeSettings'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/DeliveryTimeSettings'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'StructuredValue'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'DeliveryTimeSettings'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/DeliveryTimeSettings'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'StructuredValue'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 799db0004..3edcd429c 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 string $schemaTypeName = 'Demand'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Demand'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Demand'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Demand'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 c92e3c129..9690c10ed 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 string $schemaTypeName = 'DemoAlbum'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/DemoAlbum'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MusicAlbumProductionType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'DemoAlbum'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/DemoAlbum'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MusicAlbumProductionType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 ae8276478..6d3d64d8a 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 string $schemaTypeName = 'DemoGameAvailability'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/DemoGameAvailability'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'GameAvailabilityEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'DemoGameAvailability'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/DemoGameAvailability'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'GameAvailabilityEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 ba769bf76..1b0275f0e 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 string $schemaTypeName = 'Dentist'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Dentist'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Dentist'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Dentist'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'LocalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'LocalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A dentist.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 30eb4407d..323ffaea2 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 string $schemaTypeName = 'Dentistry'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Dentistry'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalSpecialty'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Dentistry'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Dentistry'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalSpecialty'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 fa1a4bf3a..48cc11620 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 string $schemaTypeName = 'DepartAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/DepartAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MoveAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'DepartAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/DepartAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MoveAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 9f57ecea8..0a27e1bfa 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 string $schemaTypeName = 'DepartmentStore'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'DepartmentStore'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/DepartmentStore'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/DepartmentStore'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Store'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Store'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A department store.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 ea8ed9f3b..883244037 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 string $schemaTypeName = 'DepositAccount'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/DepositAccount'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'BankAccount'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'DepositAccount'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/DepositAccount'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'BankAccount'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 23144c0d0..8112239c3 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 string $schemaTypeName = 'Dermatologic'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Dermatologic'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalSpecialty'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Dermatologic'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Dermatologic'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalSpecialty'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 73585c1ee..a5fa02ae0 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 string $schemaTypeName = 'Dermatology'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Dermatology'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Dermatology'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Dermatology'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 51da61de0..51e5b0d4e 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 string $schemaTypeName = 'DesktopWebPlatform'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/DesktopWebPlatform'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'DigitalPlatformEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'DesktopWebPlatform'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/DesktopWebPlatform'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'DigitalPlatformEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 b75f420c3..ced6047b6 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 string $schemaTypeName = 'DiabeticDiet'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/DiabeticDiet'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'RestrictedDiet'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'DiabeticDiet'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/DiabeticDiet'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'RestrictedDiet'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 972d66ba1..40bede5ef 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 string $schemaTypeName = 'Diagnostic'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Diagnostic'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalDevicePurpose'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Diagnostic'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Diagnostic'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalDevicePurpose'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 60495639e..46b99d609 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 string $schemaTypeName = 'DiagnosticLab'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'DiagnosticLab'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/DiagnosticLab'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/DiagnosticLab'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalOrganization'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalOrganization'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A medical laboratory that offers on-site or off-site diagnostic services.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 3bbb07b2f..287f0b24b 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 string $schemaTypeName = 'DiagnosticProcedure'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/DiagnosticProcedure'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalProcedure'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'DiagnosticProcedure'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/DiagnosticProcedure'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalProcedure'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 f1bd15aaf..876ddd9d7 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 string $schemaTypeName = 'Diet'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Diet'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Diet'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Diet'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 ca334f6f6..08adb100f 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 string $schemaTypeName = 'DietNutrition'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'DietNutrition'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/DietNutrition'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/DietNutrition'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'Dietetics and nutrition as a medical specialty.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 967e92fc7..009766750 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 string $schemaTypeName = 'DietarySupplement'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'DietarySupplement'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/DietarySupplement'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/DietarySupplement'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Product'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Product'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 bdf6ea517..608affc25 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 string $schemaTypeName = 'DigitalAudioTapeFormat'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/DigitalAudioTapeFormat'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MusicReleaseFormatType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'DigitalAudioTapeFormat'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/DigitalAudioTapeFormat'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MusicReleaseFormatType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 2bc5345bf..f1f5d290a 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 string $schemaTypeName = 'DigitalDocument'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'DigitalDocument'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/DigitalDocument'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/DigitalDocument'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'An electronic file or document.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 48e3d6eff..c9fd3fcb3 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 string $schemaTypeName = 'DigitalDocumentPermission'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/DigitalDocumentPermission'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'DigitalDocumentPermission'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/DigitalDocumentPermission'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 1a4cbed7b..8b9082c3e 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 string $schemaTypeName = 'DigitalDocumentPermissionType'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/DigitalDocumentPermissionType'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Enumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'DigitalDocumentPermissionType'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/DigitalDocumentPermissionType'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Enumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 94edb358e..7976e696d 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 string $schemaTypeName = 'DigitalFormat'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/DigitalFormat'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MusicReleaseFormatType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'DigitalFormat'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/DigitalFormat'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MusicReleaseFormatType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 5661ad1bd..9aaa2c0ce 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 string $schemaTypeName = 'DigitalPlatformEnumeration'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/DigitalPlatformEnumeration'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Enumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'DigitalPlatformEnumeration'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/DigitalPlatformEnumeration'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Enumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 b5d378a0f..7158299b1 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 string $schemaTypeName = 'DisabilitySupport'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/DisabilitySupport'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'GovernmentBenefitsType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'DisabilitySupport'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/DisabilitySupport'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'GovernmentBenefitsType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 cd3cd1679..d06f3a95f 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 string $schemaTypeName = 'DisagreeAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/DisagreeAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'ReactAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'DisagreeAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/DisagreeAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'ReactAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 bc24d8453..3588f4bf0 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 string $schemaTypeName = 'Discontinued'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Discontinued'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'ItemAvailability'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Discontinued'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Discontinued'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'ItemAvailability'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 d7559b2d4..2ae9238e4 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 string $schemaTypeName = 'DiscoverAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/DiscoverAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'FindAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'DiscoverAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/DiscoverAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'FindAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 52f35a697..df24dae01 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 string $schemaTypeName = 'DiscussionForumPosting'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'DiscussionForumPosting'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/DiscussionForumPosting'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/DiscussionForumPosting'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'SocialMediaPosting'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'SocialMediaPosting'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A posting to a discussion forum.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 898d63f56..dc6b38979 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 string $schemaTypeName = 'DislikeAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/DislikeAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'ReactAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'DislikeAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/DislikeAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'ReactAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 e23f80891..cdcebd738 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 string $schemaTypeName = 'Distance'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Distance'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Quantity'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Distance'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Distance'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Quantity'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 67ff5e8fb..f0a0a2cab 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 string $schemaTypeName = 'DistanceFee'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/DistanceFee'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'PriceComponentTypeEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'DistanceFee'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/DistanceFee'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'PriceComponentTypeEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 94f65c33f..1311a7cf0 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 string $schemaTypeName = 'Distillery'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Distillery'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Distillery'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Distillery'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'FoodEstablishment'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'FoodEstablishment'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A distillery.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 bba4b6669..3530dbaf2 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 string $schemaTypeName = 'DonateAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/DonateAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'TradeAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'DonateAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/DonateAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'TradeAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 9c5f0b0f5..3da56dc1c 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 string $schemaTypeName = 'DoseSchedule'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/DoseSchedule'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalIntangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'DoseSchedule'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/DoseSchedule'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalIntangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 8d7c28a1e..9d87458cb 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 string $schemaTypeName = 'DoubleBlindedTrial'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/DoubleBlindedTrial'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalTrialDesign'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'DoubleBlindedTrial'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/DoubleBlindedTrial'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalTrialDesign'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 685fc028c..9cc6bdaaf 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 string $schemaTypeName = 'DownloadAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/DownloadAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'TransferAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'DownloadAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/DownloadAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'TransferAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 15a89e09b..ce1e4e4e2 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 string $schemaTypeName = 'Downpayment'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Downpayment'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'PriceComponentTypeEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Downpayment'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Downpayment'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'PriceComponentTypeEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 de98e921c..f9d61568e 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 string $schemaTypeName = 'DrawAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/DrawAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CreateAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'DrawAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/DrawAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CreateAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 bc88e089d..ab0d8236d 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 string $schemaTypeName = 'Drawing'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Drawing'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Drawing'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Drawing'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A picture or diagram made with a pencil, pen, or crayon rather than paint.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 38f79f3ed..f2662c045 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 string $schemaTypeName = 'DrinkAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/DrinkAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'ConsumeAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'DrinkAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/DrinkAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'ConsumeAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 9aab76a9b..1da6e24f2 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 string $schemaTypeName = 'DriveWheelConfigurationValue'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/DriveWheelConfigurationValue'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'QualitativeValue'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'DriveWheelConfigurationValue'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/DriveWheelConfigurationValue'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'QualitativeValue'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 fb38c4e00..e4f2d6f6a 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 string $schemaTypeName = 'DrivingSchoolVehicleUsage'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/DrivingSchoolVehicleUsage'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CarUsageType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'DrivingSchoolVehicleUsage'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/DrivingSchoolVehicleUsage'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CarUsageType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 65d50ede8..6b3281fca 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 string $schemaTypeName = 'Drug'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Drug'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Drug'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Drug'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Product'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Product'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 a2ad1638e..0b0d19e54 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 string $schemaTypeName = 'DrugClass'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/DrugClass'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalEntity'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'DrugClass'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/DrugClass'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalEntity'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 c6d77c34e..585e6bec6 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 string $schemaTypeName = 'DrugCost'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/DrugCost'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalEntity'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'DrugCost'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/DrugCost'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalEntity'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 225b9b66b..bac007762 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 string $schemaTypeName = 'DrugCostCategory'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/DrugCostCategory'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'DrugCostCategory'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/DrugCostCategory'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 de93e01a6..3dc102c4c 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 string $schemaTypeName = 'DrugLegalStatus'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/DrugLegalStatus'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalIntangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'DrugLegalStatus'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/DrugLegalStatus'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalIntangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 de21c1819..87022f4a1 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 string $schemaTypeName = 'DrugPregnancyCategory'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/DrugPregnancyCategory'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'DrugPregnancyCategory'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/DrugPregnancyCategory'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 23cf95ce4..f7c7c3a12 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 string $schemaTypeName = 'DrugPrescriptionStatus'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/DrugPrescriptionStatus'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'DrugPrescriptionStatus'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/DrugPrescriptionStatus'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 89a757dde..6b7e0ea15 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 string $schemaTypeName = 'DrugStrength'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/DrugStrength'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalIntangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'DrugStrength'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/DrugStrength'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalIntangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 a62a3f431..dfd5ddfc4 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 string $schemaTypeName = 'DryCleaningOrLaundry'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'DryCleaningOrLaundry'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/DryCleaningOrLaundry'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/DryCleaningOrLaundry'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'LocalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'LocalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A dry-cleaning business.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 83e126acf..7944783bf 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 string $schemaTypeName = 'Duration'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Duration'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Quantity'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Duration'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Duration'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Quantity'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 63ed6681b..50223cc93 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 string $schemaTypeName = 'EBook'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/EBook'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'BookFormatType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'EBook'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/EBook'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'BookFormatType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 5f11ce9ac..bd89d5dcf 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 string $schemaTypeName = 'EPRelease'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/EPRelease'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MusicAlbumReleaseType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'EPRelease'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/EPRelease'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MusicAlbumReleaseType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 99a75906c..3a6aacdc8 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 string $schemaTypeName = 'EUEnergyEfficiencyCategoryA'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/EUEnergyEfficiencyCategoryA'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'EUEnergyEfficiencyEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'EUEnergyEfficiencyCategoryA'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/EUEnergyEfficiencyCategoryA'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'EUEnergyEfficiencyEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 d56897e55..607eeff6d 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 string $schemaTypeName = 'EUEnergyEfficiencyCategoryA1Plus'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/EUEnergyEfficiencyCategoryA1Plus'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'EUEnergyEfficiencyEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'EUEnergyEfficiencyCategoryA1Plus'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/EUEnergyEfficiencyCategoryA1Plus'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'EUEnergyEfficiencyEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 268298324..910d40f34 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 string $schemaTypeName = 'EUEnergyEfficiencyCategoryA2Plus'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/EUEnergyEfficiencyCategoryA2Plus'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'EUEnergyEfficiencyEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'EUEnergyEfficiencyCategoryA2Plus'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/EUEnergyEfficiencyCategoryA2Plus'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'EUEnergyEfficiencyEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 46d662d1d..aaf1e3b4a 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 string $schemaTypeName = 'EUEnergyEfficiencyCategoryA3Plus'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/EUEnergyEfficiencyCategoryA3Plus'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'EUEnergyEfficiencyEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'EUEnergyEfficiencyCategoryA3Plus'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/EUEnergyEfficiencyCategoryA3Plus'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'EUEnergyEfficiencyEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 af5b7e396..8c71e320f 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 string $schemaTypeName = 'EUEnergyEfficiencyCategoryB'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/EUEnergyEfficiencyCategoryB'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'EUEnergyEfficiencyEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'EUEnergyEfficiencyCategoryB'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/EUEnergyEfficiencyCategoryB'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'EUEnergyEfficiencyEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 319db5f66..79dc91630 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 string $schemaTypeName = 'EUEnergyEfficiencyCategoryC'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/EUEnergyEfficiencyCategoryC'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'EUEnergyEfficiencyEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'EUEnergyEfficiencyCategoryC'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/EUEnergyEfficiencyCategoryC'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'EUEnergyEfficiencyEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 a765c181a..7c23ee865 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 string $schemaTypeName = 'EUEnergyEfficiencyCategoryD'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/EUEnergyEfficiencyCategoryD'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'EUEnergyEfficiencyEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'EUEnergyEfficiencyCategoryD'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/EUEnergyEfficiencyCategoryD'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'EUEnergyEfficiencyEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 8ddc66e99..51e0ab3be 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 string $schemaTypeName = 'EUEnergyEfficiencyCategoryE'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/EUEnergyEfficiencyCategoryE'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'EUEnergyEfficiencyEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'EUEnergyEfficiencyCategoryE'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/EUEnergyEfficiencyCategoryE'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'EUEnergyEfficiencyEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 ddbcc9ff1..d0c2ff321 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 string $schemaTypeName = 'EUEnergyEfficiencyCategoryF'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/EUEnergyEfficiencyCategoryF'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'EUEnergyEfficiencyEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'EUEnergyEfficiencyCategoryF'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/EUEnergyEfficiencyCategoryF'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'EUEnergyEfficiencyEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 516acf285..a90ba725b 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 string $schemaTypeName = 'EUEnergyEfficiencyCategoryG'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/EUEnergyEfficiencyCategoryG'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'EUEnergyEfficiencyEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'EUEnergyEfficiencyCategoryG'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/EUEnergyEfficiencyCategoryG'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'EUEnergyEfficiencyEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 343e55087..676c895e2 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 string $schemaTypeName = 'EUEnergyEfficiencyEnumeration'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/EUEnergyEfficiencyEnumeration'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'EnergyEfficiencyEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'EUEnergyEfficiencyEnumeration'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/EUEnergyEfficiencyEnumeration'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'EnergyEfficiencyEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 8d7e3b463..3bc759215 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 string $schemaTypeName = 'Ear'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Ear'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'PhysicalExam'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Ear'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Ear'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'PhysicalExam'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 0e953fd31..c74e9790f 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 string $schemaTypeName = 'EatAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/EatAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'ConsumeAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'EatAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/EatAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'ConsumeAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 b3fbb616f..09b910d36 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 string $schemaTypeName = 'EditedOrCroppedContent'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/EditedOrCroppedContent'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MediaManipulationRatingEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'EditedOrCroppedContent'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/EditedOrCroppedContent'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MediaManipulationRatingEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 db17df283..5f993dbd0 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 string $schemaTypeName = 'EducationEvent'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/EducationEvent'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Event'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'EducationEvent'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/EducationEvent'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Event'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 260acee97..15567d58c 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 string $schemaTypeName = 'EducationalAudience'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/EducationalAudience'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Audience'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'EducationalAudience'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/EducationalAudience'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Audience'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 14a835cb7..33c445ae7 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 string $schemaTypeName = 'EducationalOccupationalCredential'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'EducationalOccupationalCredential'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/EducationalOccupationalCredential'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/EducationalOccupationalCredential'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 a075892e1..6661e40df 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 string $schemaTypeName = 'EducationalOccupationalProgram'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/EducationalOccupationalProgram'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'EducationalOccupationalProgram'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/EducationalOccupationalProgram'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 1f57b622b..9e7d628c5 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 string $schemaTypeName = 'EducationalOrganization'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'EducationalOrganization'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/EducationalOrganization'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/EducationalOrganization'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CivicStructure'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CivicStructure'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'An educational organization.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 08241abfc..dfd617032 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 string $schemaTypeName = 'EffectivenessHealthAspect'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/EffectivenessHealthAspect'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'HealthAspectEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'EffectivenessHealthAspect'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/EffectivenessHealthAspect'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'HealthAspectEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 21c8639df..f98674eb2 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 string $schemaTypeName = 'Electrician'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Electrician'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Electrician'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Electrician'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'HomeAndConstructionBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'HomeAndConstructionBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'An electrician.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 6acb7d399..2a1085014 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 string $schemaTypeName = 'ElectronicsStore'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'ElectronicsStore'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ElectronicsStore'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ElectronicsStore'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Store'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Store'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'An electronics store.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 3da32acb3..0a3386a8d 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 string $schemaTypeName = 'ElementarySchool'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'ElementarySchool'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ElementarySchool'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ElementarySchool'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'EducationalOrganization'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'EducationalOrganization'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'An elementary school.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 b917b79c8..0a6b062f2 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 string $schemaTypeName = 'EmailMessage'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'EmailMessage'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/EmailMessage'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/EmailMessage'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Message'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Message'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'An email message.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 8437b04a4..4910928e3 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 string $schemaTypeName = 'Embassy'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Embassy'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'GovernmentBuilding'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Embassy'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Embassy'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'GovernmentBuilding'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 40635a76f..d6f5d5bb5 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 string $schemaTypeName = 'Emergency'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Emergency'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Emergency'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Emergency'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 effd4c122..fbb5a156f 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 string $schemaTypeName = 'EmergencyService'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'EmergencyService'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/EmergencyService'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/EmergencyService'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'LocalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'LocalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'An emergency service, such as a fire station or ER.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 9d8fd9b1f..b76daee5f 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 string $schemaTypeName = 'EmployeeRole'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/EmployeeRole'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'OrganizationRole'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'EmployeeRole'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/EmployeeRole'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'OrganizationRole'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 92a801568..6e58e52d6 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 string $schemaTypeName = 'EmployerAggregateRating'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/EmployerAggregateRating'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'AggregateRating'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'EmployerAggregateRating'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/EmployerAggregateRating'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'AggregateRating'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 3554cdb69..5a37c607d 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 string $schemaTypeName = 'EmployerReview'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'EmployerReview'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/EmployerReview'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/EmployerReview'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Review'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Review'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 df502fe7d..06c5ecfcd 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 string $schemaTypeName = 'EmploymentAgency'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'EmploymentAgency'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/EmploymentAgency'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/EmploymentAgency'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'LocalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'LocalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'An employment agency.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 aebdbd327..c38952b7c 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 string $schemaTypeName = 'Endocrine'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Endocrine'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalSpecialty'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Endocrine'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Endocrine'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalSpecialty'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 daf3d4138..e202d5a44 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 string $schemaTypeName = 'EndorseAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/EndorseAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'ReactAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'EndorseAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/EndorseAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'ReactAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 37dc291f1..dd4d5bdaf 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 string $schemaTypeName = 'EndorsementRating'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/EndorsementRating'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Rating'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'EndorsementRating'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/EndorsementRating'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Rating'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 83c747c1c..ef5e41a00 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 string $schemaTypeName = 'Energy'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Energy'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Quantity'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Energy'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Energy'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Quantity'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 8d146eb6a..e232d21ca 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 string $schemaTypeName = 'EnergyConsumptionDetails'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/EnergyConsumptionDetails'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'EnergyConsumptionDetails'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/EnergyConsumptionDetails'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 325c04e7a..d9512e798 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 string $schemaTypeName = 'EnergyEfficiencyEnumeration'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/EnergyEfficiencyEnumeration'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Enumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'EnergyEfficiencyEnumeration'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/EnergyEfficiencyEnumeration'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Enumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 0039b3948..3180a48c5 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 string $schemaTypeName = 'EnergyStarCertified'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/EnergyStarCertified'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'EnergyStarEnergyEfficiencyEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'EnergyStarCertified'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/EnergyStarCertified'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'EnergyStarEnergyEfficiencyEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 006a1a5eb..d5867c653 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 string $schemaTypeName = 'EnergyStarEnergyEfficiencyEnumeration'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/EnergyStarEnergyEfficiencyEnumeration'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'EnergyEfficiencyEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'EnergyStarEnergyEfficiencyEnumeration'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/EnergyStarEnergyEfficiencyEnumeration'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'EnergyEfficiencyEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 c26132a74..e3405a467 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 string $schemaTypeName = 'EngineSpecification'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/EngineSpecification'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'StructuredValue'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'EngineSpecification'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/EngineSpecification'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'StructuredValue'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 ae53ac2e2..78e6eda4b 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 string $schemaTypeName = 'EnrollingByInvitation'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/EnrollingByInvitation'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalStudyStatus'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'EnrollingByInvitation'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/EnrollingByInvitation'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalStudyStatus'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 5fbace3cc..52e745b62 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 string $schemaTypeName = 'EntertainmentBusiness'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'EntertainmentBusiness'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/EntertainmentBusiness'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/EntertainmentBusiness'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'LocalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'LocalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A business providing entertainment.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 6f867d4b4..468d06e07 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 string $schemaTypeName = 'EntryPoint'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/EntryPoint'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'EntryPoint'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/EntryPoint'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 535748a9c..a495afa79 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 string $schemaTypeName = 'Enumeration'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Enumeration'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Enumeration'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Enumeration'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 dfebbb864..8c396e788 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 string $schemaTypeName = 'Episode'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Episode'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Episode'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Episode'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 61f6e6a7e..80166f45f 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 string $schemaTypeName = 'Event'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Event'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Thing'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Event'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Event'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Thing'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 3ed6b8052..8eecb043e 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 string $schemaTypeName = 'EventAttendanceModeEnumeration'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/EventAttendanceModeEnumeration'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Enumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'EventAttendanceModeEnumeration'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/EventAttendanceModeEnumeration'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Enumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 855d44106..52a740bf1 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 string $schemaTypeName = 'EventCancelled'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/EventCancelled'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'EventStatusType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'EventCancelled'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/EventCancelled'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'EventStatusType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 dc4cd5515..40be1964e 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 string $schemaTypeName = 'EventMovedOnline'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/EventMovedOnline'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'EventStatusType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'EventMovedOnline'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/EventMovedOnline'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'EventStatusType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 85ae67aeb..f43a55866 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 string $schemaTypeName = 'EventPostponed'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/EventPostponed'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'EventStatusType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'EventPostponed'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/EventPostponed'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'EventStatusType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 f16cee921..47d526c65 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 string $schemaTypeName = 'EventRescheduled'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/EventRescheduled'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'EventStatusType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'EventRescheduled'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/EventRescheduled'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'EventStatusType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 1af2ac50c..38b6e63bb 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 string $schemaTypeName = 'EventReservation'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/EventReservation'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Reservation'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'EventReservation'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/EventReservation'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Reservation'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 0ec8ea64d..023a901e9 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 string $schemaTypeName = 'EventScheduled'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/EventScheduled'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'EventStatusType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'EventScheduled'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/EventScheduled'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'EventStatusType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 5f8c2cdf1..6d7b66720 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 string $schemaTypeName = 'EventSeries'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/EventSeries'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Event'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'EventSeries'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/EventSeries'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Event'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 7023cc2f5..a007409aa 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 string $schemaTypeName = 'EventStatusType'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/EventStatusType'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'StatusEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'EventStatusType'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/EventStatusType'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'StatusEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 59b277854..2b8532f74 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 string $schemaTypeName = 'EventVenue'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/EventVenue'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CivicStructure'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'EventVenue'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/EventVenue'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CivicStructure'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 f42bc6e02..fe4f7cb3b 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 string $schemaTypeName = 'EvidenceLevelA'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/EvidenceLevelA'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalEvidenceLevel'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'EvidenceLevelA'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/EvidenceLevelA'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalEvidenceLevel'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 d0b33346f..133d13f73 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 string $schemaTypeName = 'EvidenceLevelB'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/EvidenceLevelB'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalEvidenceLevel'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'EvidenceLevelB'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/EvidenceLevelB'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalEvidenceLevel'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 e5998a026..374128732 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 string $schemaTypeName = 'EvidenceLevelC'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/EvidenceLevelC'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalEvidenceLevel'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'EvidenceLevelC'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/EvidenceLevelC'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalEvidenceLevel'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 a8074684f..b25fa51dd 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 string $schemaTypeName = 'ExchangeRateSpecification'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ExchangeRateSpecification'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'StructuredValue'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'ExchangeRateSpecification'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ExchangeRateSpecification'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'StructuredValue'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 c24d9df47..e8ceb9af1 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 string $schemaTypeName = 'ExchangeRefund'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ExchangeRefund'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'RefundTypeEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'ExchangeRefund'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ExchangeRefund'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'RefundTypeEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 06f6aa48c..e68b2f07c 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 string $schemaTypeName = 'ExerciseAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ExerciseAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'PlayAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'ExerciseAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ExerciseAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'PlayAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 8e85ec5b6..6ff5fe8cc 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 string $schemaTypeName = 'ExerciseGym'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'ExerciseGym'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ExerciseGym'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ExerciseGym'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'SportsActivityLocation'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'SportsActivityLocation'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A gym.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 9b51c4bfe..6a4f39c40 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 string $schemaTypeName = 'ExercisePlan'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'ExercisePlan'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ExercisePlan'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ExercisePlan'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 088cff521..76d8e2b0c 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 string $schemaTypeName = 'ExhibitionEvent'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ExhibitionEvent'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Event'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'ExhibitionEvent'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ExhibitionEvent'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Event'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 5ccc791d2..89c13b0f2 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 string $schemaTypeName = 'Eye'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Eye'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'PhysicalExam'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Eye'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Eye'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'PhysicalExam'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 65a306a31..6cfcce70c 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 string $schemaTypeName = 'FAQPage'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'FAQPage'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/FAQPage'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/FAQPage'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'WebPage'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'WebPage'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 3582fb4b7..4447c10f4 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 string $schemaTypeName = 'FDAcategoryA'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/FDAcategoryA'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'DrugPregnancyCategory'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'FDAcategoryA'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/FDAcategoryA'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'DrugPregnancyCategory'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 29ef041ae..973b34226 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 string $schemaTypeName = 'FDAcategoryB'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/FDAcategoryB'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'DrugPregnancyCategory'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'FDAcategoryB'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/FDAcategoryB'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'DrugPregnancyCategory'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 539e7dfb6..4e87b60db 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 string $schemaTypeName = 'FDAcategoryC'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/FDAcategoryC'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'DrugPregnancyCategory'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'FDAcategoryC'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/FDAcategoryC'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'DrugPregnancyCategory'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 7151aa2b1..75d34c05b 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 string $schemaTypeName = 'FDAcategoryD'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/FDAcategoryD'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'DrugPregnancyCategory'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'FDAcategoryD'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/FDAcategoryD'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'DrugPregnancyCategory'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 076f0faff..d3455eb5f 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 string $schemaTypeName = 'FDAcategoryX'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/FDAcategoryX'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'DrugPregnancyCategory'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'FDAcategoryX'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/FDAcategoryX'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'DrugPregnancyCategory'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 39fb6969f..8614fe7fb 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 string $schemaTypeName = 'FDAnotEvaluated'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/FDAnotEvaluated'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'DrugPregnancyCategory'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'FDAnotEvaluated'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/FDAnotEvaluated'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'DrugPregnancyCategory'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 cbfd9aa93..7a616c222 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 string $schemaTypeName = 'FMRadioChannel'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/FMRadioChannel'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'RadioChannel'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'FMRadioChannel'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/FMRadioChannel'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'RadioChannel'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 d41163dba..48e5454f3 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 string $schemaTypeName = 'FailedActionStatus'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/FailedActionStatus'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'ActionStatusType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'FailedActionStatus'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/FailedActionStatus'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'ActionStatusType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 16311b9fd..0f5b37863 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 string $schemaTypeName = 'FastFoodRestaurant'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'FastFoodRestaurant'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/FastFoodRestaurant'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/FastFoodRestaurant'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'FoodEstablishment'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'FoodEstablishment'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A fast-food restaurant.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 3d24f3b46..7a8d53f6b 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 string $schemaTypeName = 'Female'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Female'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'GenderType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Female'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Female'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'GenderType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 63a828b6a..4440a96c3 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 string $schemaTypeName = 'Festival'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Festival'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Event'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Festival'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Festival'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Event'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 cb173ef36..e2b9a299e 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 string $schemaTypeName = 'FilmAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/FilmAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CreateAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'FilmAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/FilmAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CreateAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 e1ca5d956..c4c566aaf 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 string $schemaTypeName = 'FinancialProduct'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/FinancialProduct'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Service'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'FinancialProduct'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/FinancialProduct'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Service'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 aebbc3819..6c6f02870 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 string $schemaTypeName = 'FinancialService'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'FinancialService'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/FinancialService'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/FinancialService'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'LocalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'LocalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'Financial services business.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 d72170cb5..7cb9c4372 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 string $schemaTypeName = 'FindAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/FindAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Action'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'FindAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/FindAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Action'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 3778b783b..efc216a08 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 string $schemaTypeName = 'FireStation'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'FireStation'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/FireStation'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/FireStation'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'EmergencyService'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'EmergencyService'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A fire station. With firemen.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 d2e572d0a..ba20bdd7f 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 string $schemaTypeName = 'Flexibility'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Flexibility'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'PhysicalActivityCategory'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Flexibility'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Flexibility'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'PhysicalActivityCategory'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 e22a4ac5e..23acc92d6 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 string $schemaTypeName = 'Flight'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Flight'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Trip'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Flight'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Flight'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Trip'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 19d992bbc..d15438802 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 string $schemaTypeName = 'FlightReservation'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/FlightReservation'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Reservation'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'FlightReservation'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/FlightReservation'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Reservation'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 7bf69b3c1..518377d78 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 string $schemaTypeName = 'FloorPlan'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/FloorPlan'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'FloorPlan'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/FloorPlan'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 078b8065f..0c12fb2be 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 string $schemaTypeName = 'Florist'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Florist'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Florist'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Florist'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Store'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Store'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A florist.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 1526de565..ef3bb90fd 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 string $schemaTypeName = 'FollowAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/FollowAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'InteractAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'FollowAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/FollowAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'InteractAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 18460df99..3b525a42a 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 string $schemaTypeName = 'FoodEstablishment'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'FoodEstablishment'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/FoodEstablishment'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/FoodEstablishment'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'LocalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'LocalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A food-related business.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 3deedfbd3..b89776306 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 string $schemaTypeName = 'FoodEstablishmentReservation'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/FoodEstablishmentReservation'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Reservation'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'FoodEstablishmentReservation'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/FoodEstablishmentReservation'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Reservation'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 f9dd12ef0..fe4d7ecb8 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 string $schemaTypeName = 'FoodEvent'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/FoodEvent'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Event'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'FoodEvent'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/FoodEvent'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Event'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 e19eeed16..d549c7ed4 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 string $schemaTypeName = 'FoodService'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/FoodService'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Service'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'FoodService'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/FoodService'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Service'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 673c6f73a..288649f07 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 string $schemaTypeName = 'FourWheelDriveConfiguration'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/FourWheelDriveConfiguration'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'DriveWheelConfigurationValue'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'FourWheelDriveConfiguration'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/FourWheelDriveConfiguration'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'DriveWheelConfigurationValue'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 eb5982073..dc0854102 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 string $schemaTypeName = 'FreeReturn'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/FreeReturn'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'ReturnFeesEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'FreeReturn'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/FreeReturn'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'ReturnFeesEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 2ab8520c4..8a1e174fd 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 string $schemaTypeName = 'Friday'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Friday'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'DayOfWeek'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Friday'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Friday'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'DayOfWeek'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 6b1f612ed..66e7a4f0f 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 string $schemaTypeName = 'FrontWheelDriveConfiguration'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/FrontWheelDriveConfiguration'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'DriveWheelConfigurationValue'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'FrontWheelDriveConfiguration'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/FrontWheelDriveConfiguration'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'DriveWheelConfigurationValue'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 81b42796e..35a4cecc9 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 string $schemaTypeName = 'FullGameAvailability'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/FullGameAvailability'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'GameAvailabilityEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'FullGameAvailability'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/FullGameAvailability'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'GameAvailabilityEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 b9aea161c..37e72174b 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 string $schemaTypeName = 'FullRefund'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/FullRefund'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'RefundTypeEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'FullRefund'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/FullRefund'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'RefundTypeEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 7d40d1d89..3909f7a59 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 string $schemaTypeName = 'FundingAgency'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'FundingAgency'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/FundingAgency'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/FundingAgency'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Project'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Project'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 66461f3b3..7e8c62547 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 string $schemaTypeName = 'FundingScheme'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'FundingScheme'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/FundingScheme'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/FundingScheme'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Organization'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Organization'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 f4c337f5d..ab5873df8 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 string $schemaTypeName = 'Fungus'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Fungus'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'InfectiousAgentClass'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Fungus'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Fungus'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'InfectiousAgentClass'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 643208d32..ef79c5e0e 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 string $schemaTypeName = 'FurnitureStore'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'FurnitureStore'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/FurnitureStore'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/FurnitureStore'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Store'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Store'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A furniture store.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 9b2395356..4e25a860e 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 string $schemaTypeName = 'Game'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Game'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Game'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Game'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 d7321a3dd..3c150e0fd 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 string $schemaTypeName = 'GameAvailabilityEnumeration'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/GameAvailabilityEnumeration'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Enumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'GameAvailabilityEnumeration'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/GameAvailabilityEnumeration'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Enumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 4259e2a14..3eb64ccea 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 string $schemaTypeName = 'GamePlayMode'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/GamePlayMode'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Enumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'GamePlayMode'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/GamePlayMode'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Enumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 56cd6fa29..2c31afe25 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 string $schemaTypeName = 'GameServer'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/GameServer'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'GameServer'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/GameServer'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 665cc68a5..fb7506ddc 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 string $schemaTypeName = 'GameServerStatus'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/GameServerStatus'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'StatusEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'GameServerStatus'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/GameServerStatus'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'StatusEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 acc78a89b..26447329f 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 string $schemaTypeName = 'GardenStore'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'GardenStore'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/GardenStore'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/GardenStore'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Store'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Store'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A garden store.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 9ff3c4d2e..aab0736c1 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 string $schemaTypeName = 'GasStation'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'GasStation'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/GasStation'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/GasStation'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'AutomotiveBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'AutomotiveBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A gas station.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 deb915058..9988398e3 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 string $schemaTypeName = 'Gastroenterologic'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Gastroenterologic'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalSpecialty'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Gastroenterologic'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Gastroenterologic'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalSpecialty'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 c507ef0a0..2162e560c 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 string $schemaTypeName = 'GatedResidenceCommunity'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/GatedResidenceCommunity'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Residence'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'GatedResidenceCommunity'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/GatedResidenceCommunity'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Residence'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 857f632b4..1310c98a7 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 string $schemaTypeName = 'GenderType'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/GenderType'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Enumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'GenderType'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/GenderType'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Enumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 6352ba5f7..0b038023e 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 string $schemaTypeName = 'Gene'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Gene'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'BioChemEntity'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Gene'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Gene'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'BioChemEntity'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 1428c5b7e..e1b0bd395 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 string $schemaTypeName = 'GeneralContractor'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'GeneralContractor'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/GeneralContractor'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/GeneralContractor'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'HomeAndConstructionBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'HomeAndConstructionBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A general contractor.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 228f44f08..b7be93b2e 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 string $schemaTypeName = 'GenericWebPlatform'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/GenericWebPlatform'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'DigitalPlatformEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'GenericWebPlatform'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/GenericWebPlatform'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'DigitalPlatformEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 513ee4213..2ea67b146 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 string $schemaTypeName = 'Genetic'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Genetic'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalSpecialty'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Genetic'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Genetic'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalSpecialty'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 f1467e434..ebd0c32e6 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 string $schemaTypeName = 'Genitourinary'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Genitourinary'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'PhysicalExam'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Genitourinary'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Genitourinary'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'PhysicalExam'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 cfbe4b2d7..3167bfa12 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 string $schemaTypeName = 'GeoCircle'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/GeoCircle'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'GeoShape'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'GeoCircle'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/GeoCircle'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'GeoShape'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 aa49979ce..ddf649094 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 string $schemaTypeName = 'GeoCoordinates'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/GeoCoordinates'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'StructuredValue'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'GeoCoordinates'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/GeoCoordinates'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'StructuredValue'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 ce91ab66a..1793a071f 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 string $schemaTypeName = 'GeoShape'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/GeoShape'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'StructuredValue'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'GeoShape'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/GeoShape'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'StructuredValue'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 261a9df3c..13bfcea72 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 string $schemaTypeName = 'GeospatialGeometry'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/GeospatialGeometry'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'GeospatialGeometry'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/GeospatialGeometry'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 a273a48f1..b55eba2fc 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 string $schemaTypeName = 'Geriatric'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Geriatric'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Geriatric'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Geriatric'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 aebf591ff..6d9ed48b6 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 string $schemaTypeName = 'GettingAccessHealthAspect'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/GettingAccessHealthAspect'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'HealthAspectEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'GettingAccessHealthAspect'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/GettingAccessHealthAspect'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'HealthAspectEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 fc97568e7..adba41029 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 string $schemaTypeName = 'GiveAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/GiveAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'TransferAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'GiveAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/GiveAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'TransferAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 b7e6c0846..0641db0ba 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 string $schemaTypeName = 'GlutenFreeDiet'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/GlutenFreeDiet'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'RestrictedDiet'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'GlutenFreeDiet'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/GlutenFreeDiet'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'RestrictedDiet'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 598adf9be..d3389387c 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 string $schemaTypeName = 'GolfCourse'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'GolfCourse'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/GolfCourse'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/GolfCourse'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'SportsActivityLocation'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'SportsActivityLocation'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A golf course.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 267eaab4c..9f4a2524e 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 string $schemaTypeName = 'GovernmentBenefitsType'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/GovernmentBenefitsType'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Enumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'GovernmentBenefitsType'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/GovernmentBenefitsType'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Enumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 b0ae1a6aa..9b1356338 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 string $schemaTypeName = 'GovernmentBuilding'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/GovernmentBuilding'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CivicStructure'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'GovernmentBuilding'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/GovernmentBuilding'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CivicStructure'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 1de05a7ff..0a419f135 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 string $schemaTypeName = 'GovernmentOffice'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'GovernmentOffice'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/GovernmentOffice'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/GovernmentOffice'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'LocalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'LocalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A government office—for example, an IRS or DMV office.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 3f112f2ad..21c90e8b5 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 string $schemaTypeName = 'GovernmentOrganization'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'GovernmentOrganization'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/GovernmentOrganization'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/GovernmentOrganization'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Organization'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Organization'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A governmental organization or agency.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 640d57879..bfe2ef821 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 string $schemaTypeName = 'GovernmentPermit'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/GovernmentPermit'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Permit'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'GovernmentPermit'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/GovernmentPermit'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Permit'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 9394cf968..7598f144a 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 string $schemaTypeName = 'GovernmentService'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/GovernmentService'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Service'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'GovernmentService'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/GovernmentService'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Service'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 f537ff680..8d17e864a 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 string $schemaTypeName = 'Grant'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Grant'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Grant'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Grant'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 de021ee93..a60747412 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 string $schemaTypeName = 'GraphicNovel'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/GraphicNovel'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'BookFormatType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'GraphicNovel'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/GraphicNovel'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'BookFormatType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 bd8b7b711..f7bec0319 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 string $schemaTypeName = 'GroceryStore'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'GroceryStore'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/GroceryStore'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/GroceryStore'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Store'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Store'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A grocery store.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 af9fb0558..2582d220f 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 string $schemaTypeName = 'GroupBoardingPolicy'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/GroupBoardingPolicy'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'BoardingPolicyType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'GroupBoardingPolicy'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/GroupBoardingPolicy'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'BoardingPolicyType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 72aedffc5..6b66dcd83 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 string $schemaTypeName = 'Guide'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Guide'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Guide'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Guide'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 7af8b0a1e..76aef1b2f 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 string $schemaTypeName = 'Gynecologic'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Gynecologic'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Gynecologic'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Gynecologic'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 664305e7c..6b92af8e9 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 string $schemaTypeName = 'HVACBusiness'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'HVACBusiness'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/HVACBusiness'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/HVACBusiness'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'HomeAndConstructionBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'HomeAndConstructionBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A business that provides Heating, Ventilation and Air Conditioning services.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 1b7b7f32f..0d0756169 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 string $schemaTypeName = 'Hackathon'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Hackathon'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Event'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Hackathon'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Hackathon'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Event'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 58dfa9e62..a93ed43e1 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 string $schemaTypeName = 'HairSalon'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'HairSalon'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/HairSalon'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/HairSalon'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'HealthAndBeautyBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'HealthAndBeautyBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A hair salon.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 e94b41c54..d5a023b32 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 string $schemaTypeName = 'HalalDiet'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/HalalDiet'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'RestrictedDiet'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'HalalDiet'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/HalalDiet'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'RestrictedDiet'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 13b4ef564..4842ccd45 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 string $schemaTypeName = 'Hardcover'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Hardcover'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'BookFormatType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Hardcover'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Hardcover'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'BookFormatType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 27b62881c..2ab46faa8 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 string $schemaTypeName = 'HardwareStore'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'HardwareStore'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/HardwareStore'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/HardwareStore'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Store'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Store'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A hardware store.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 4db998e2b..f8fe96697 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 string $schemaTypeName = 'Head'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Head'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'PhysicalExam'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Head'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Head'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'PhysicalExam'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 7d0b671e6..9b3951add 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 string $schemaTypeName = 'HealthAndBeautyBusiness'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'HealthAndBeautyBusiness'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/HealthAndBeautyBusiness'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/HealthAndBeautyBusiness'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'LocalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'LocalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'Health and beauty.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 a6a08f343..ad53d603f 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 string $schemaTypeName = 'HealthAspectEnumeration'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/HealthAspectEnumeration'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Enumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'HealthAspectEnumeration'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/HealthAspectEnumeration'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Enumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 a6b1f5bb2..fe52da451 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 string $schemaTypeName = 'HealthCare'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/HealthCare'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'GovernmentBenefitsType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'HealthCare'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/HealthCare'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'GovernmentBenefitsType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 f05e945d7..721fcdfb5 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 string $schemaTypeName = 'HealthClub'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'HealthClub'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/HealthClub'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/HealthClub'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'HealthAndBeautyBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'HealthAndBeautyBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A health club.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 240f7d532..fb020a464 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 string $schemaTypeName = 'HealthInsurancePlan'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/HealthInsurancePlan'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'HealthInsurancePlan'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/HealthInsurancePlan'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 b0cbd0a59..72e574adb 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 string $schemaTypeName = 'HealthPlanCostSharingSpecification'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/HealthPlanCostSharingSpecification'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'HealthPlanCostSharingSpecification'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/HealthPlanCostSharingSpecification'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 1a89d27c8..6d9382a5d 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 string $schemaTypeName = 'HealthPlanFormulary'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/HealthPlanFormulary'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'HealthPlanFormulary'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/HealthPlanFormulary'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 fdbc3167d..0b0911c92 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 string $schemaTypeName = 'HealthPlanNetwork'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/HealthPlanNetwork'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'HealthPlanNetwork'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/HealthPlanNetwork'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 d213d71c2..3409fb203 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 string $schemaTypeName = 'HealthTopicContent'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'HealthTopicContent'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/HealthTopicContent'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/HealthTopicContent'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'WebContent'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'WebContent'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 a123406af..002f31960 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 string $schemaTypeName = 'HealthcareConsideration'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/HealthcareConsideration'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'AdultOrientedEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'HealthcareConsideration'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/HealthcareConsideration'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'AdultOrientedEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 ef09cb678..cd820adce 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 string $schemaTypeName = 'HearingImpairedSupported'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/HearingImpairedSupported'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'ContactPointOption'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'HearingImpairedSupported'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/HearingImpairedSupported'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'ContactPointOption'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 6ce418b9d..70160ced0 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 string $schemaTypeName = 'Hematologic'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Hematologic'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalSpecialty'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Hematologic'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Hematologic'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalSpecialty'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 6e56d2ed0..4601ae7bc 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 string $schemaTypeName = 'HighSchool'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'HighSchool'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/HighSchool'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/HighSchool'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'EducationalOrganization'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'EducationalOrganization'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A high school.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 c28582a23..cf41b086d 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 string $schemaTypeName = 'HinduDiet'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/HinduDiet'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'RestrictedDiet'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'HinduDiet'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/HinduDiet'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'RestrictedDiet'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 272691330..e924131b6 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 string $schemaTypeName = 'HinduTemple'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/HinduTemple'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'PlaceOfWorship'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'HinduTemple'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/HinduTemple'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'PlaceOfWorship'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 a2c3560a9..a4c89decb 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 string $schemaTypeName = 'HobbyShop'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'HobbyShop'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/HobbyShop'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/HobbyShop'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Store'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Store'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A store that sells materials useful or necessary for various hobbies.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 0f6295824..afc530705 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 string $schemaTypeName = 'HomeAndConstructionBusiness'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'HomeAndConstructionBusiness'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/HomeAndConstructionBusiness'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/HomeAndConstructionBusiness'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'LocalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'LocalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 18eccec50..e4303a65b 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 string $schemaTypeName = 'HomeGoodsStore'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'HomeGoodsStore'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/HomeGoodsStore'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/HomeGoodsStore'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Store'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Store'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A home goods store.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 702cdfb3a..d6022ee29 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 string $schemaTypeName = 'Homeopathic'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Homeopathic'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicineSystem'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Homeopathic'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Homeopathic'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicineSystem'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 e00a2453c..335aa0644 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 string $schemaTypeName = 'Hospital'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Hospital'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Hospital'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Hospital'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'EmergencyService'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'EmergencyService'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A hospital.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 fd14ecfe9..636995a36 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 string $schemaTypeName = 'Hostel'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Hostel'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Hostel'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Hostel'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'LodgingBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'LodgingBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 1c0afd047..7c52f002a 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 string $schemaTypeName = 'Hotel'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Hotel'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Hotel'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Hotel'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'LodgingBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'LodgingBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 a43acb880..0cc518e0e 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 string $schemaTypeName = 'HotelRoom'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'HotelRoom'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/HotelRoom'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/HotelRoom'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Room'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Room'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 8ccb8e3a9..1595a83ee 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 string $schemaTypeName = 'House'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'House'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/House'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/House'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Accommodation'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Accommodation'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 3d96e92f0..882cabbeb 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 string $schemaTypeName = 'HousePainter'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'HousePainter'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/HousePainter'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/HousePainter'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'HomeAndConstructionBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'HomeAndConstructionBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A house painting service.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 433b55b79..1263c395f 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 string $schemaTypeName = 'HowItWorksHealthAspect'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/HowItWorksHealthAspect'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'HealthAspectEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'HowItWorksHealthAspect'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/HowItWorksHealthAspect'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'HealthAspectEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 a9911cfdb..f6273c01d 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 string $schemaTypeName = 'HowOrWhereHealthAspect'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/HowOrWhereHealthAspect'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'HealthAspectEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'HowOrWhereHealthAspect'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/HowOrWhereHealthAspect'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'HealthAspectEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 ce3996b28..965d0f49c 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 string $schemaTypeName = 'HowTo'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'HowTo'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/HowTo'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/HowTo'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'Instructions that explain how to achieve a result by performing a sequence of steps.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 baf8c7a06..6c3e6cec6 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 string $schemaTypeName = 'HowToDirection'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'HowToDirection'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/HowToDirection'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/HowToDirection'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 3950eb2b1..5a7f85434 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 string $schemaTypeName = 'HowToItem'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/HowToItem'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'ListItem'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'HowToItem'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/HowToItem'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'ListItem'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 47516262d..4598a99d0 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 string $schemaTypeName = 'HowToSection'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'HowToSection'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/HowToSection'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/HowToSection'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'ItemList'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'ItemList'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 643694c2f..f7c6a6266 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 string $schemaTypeName = 'HowToStep'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'HowToStep'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/HowToStep'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/HowToStep'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'ItemList'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'ItemList'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 dc6e053ef..297f6cc29 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 string $schemaTypeName = 'HowToSupply'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/HowToSupply'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'HowToItem'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'HowToSupply'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/HowToSupply'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'HowToItem'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 24a65a3db..250410027 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 string $schemaTypeName = 'HowToTip'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'HowToTip'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/HowToTip'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/HowToTip'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'ListItem'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'ListItem'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 a3665ba03..0abec0c40 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 string $schemaTypeName = 'HowToTool'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/HowToTool'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'HowToItem'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'HowToTool'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/HowToTool'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'HowToItem'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 533c92b2c..aec54955b 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 string $schemaTypeName = 'HyperToc'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'HyperToc'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/HyperToc'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/HyperToc'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 762269eaa..9265bf533 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 string $schemaTypeName = 'HyperTocEntry'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'HyperTocEntry'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/HyperTocEntry'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/HyperTocEntry'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 5340ef3a7..3b9dde5ca 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 string $schemaTypeName = 'IOSPlatform'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/IOSPlatform'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'DigitalPlatformEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'IOSPlatform'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/IOSPlatform'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'DigitalPlatformEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 46898ac55..670ab070d 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 string $schemaTypeName = 'IceCreamShop'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'IceCreamShop'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/IceCreamShop'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/IceCreamShop'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'FoodEstablishment'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'FoodEstablishment'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'An ice cream shop.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 e15c80aa1..0947563ff 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 string $schemaTypeName = 'IgnoreAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/IgnoreAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'AssessAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'IgnoreAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/IgnoreAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'AssessAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 b93835496..abe917217 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 string $schemaTypeName = 'ImageGallery'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'ImageGallery'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ImageGallery'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ImageGallery'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MediaGallery'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MediaGallery'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'Web page type: Image gallery page.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 239456e6e..a653687d3 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 string $schemaTypeName = 'ImageObject'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'ImageObject'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ImageObject'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ImageObject'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MediaObject'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MediaObject'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'An image file.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 a36134598..8159e5e3a 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 string $schemaTypeName = 'ImageObjectSnapshot'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'ImageObjectSnapshot'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ImageObjectSnapshot'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ImageObjectSnapshot'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'ImageObject'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'ImageObject'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 5465ff6a0..8342d0aff 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 string $schemaTypeName = 'ImagingTest'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ImagingTest'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalTest'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'ImagingTest'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ImagingTest'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalTest'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 5dc7e89ac..e045b43c6 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 string $schemaTypeName = 'InForce'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/InForce'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'LegalForceStatus'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'InForce'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/InForce'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'LegalForceStatus'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 3b8e2fb5c..803a07921 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 string $schemaTypeName = 'InStock'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/InStock'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'ItemAvailability'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'InStock'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/InStock'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'ItemAvailability'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 76c8c51f0..7517ab8ab 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 string $schemaTypeName = 'InStoreOnly'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/InStoreOnly'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'ItemAvailability'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'InStoreOnly'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/InStoreOnly'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'ItemAvailability'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 08b3910bd..699d060f0 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 string $schemaTypeName = 'IndividualProduct'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'IndividualProduct'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/IndividualProduct'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/IndividualProduct'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Product'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Product'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A single, identifiable product instance (e.g. a laptop with a particular serial number).'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 0c5fcf0ef..86ff72ae1 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 string $schemaTypeName = 'Infectious'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Infectious'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalSpecialty'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Infectious'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Infectious'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalSpecialty'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 7b1a4576a..7f9ba1f45 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 string $schemaTypeName = 'InfectiousAgentClass'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/InfectiousAgentClass'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'InfectiousAgentClass'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/InfectiousAgentClass'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 f989eecf4..bf1a294ef 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 string $schemaTypeName = 'InfectiousDisease'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/InfectiousDisease'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalCondition'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'InfectiousDisease'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/InfectiousDisease'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalCondition'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 c600b6d1d..29939c287 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 string $schemaTypeName = 'InformAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/InformAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CommunicateAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'InformAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/InformAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CommunicateAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 833dbc262..fccb875d1 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 string $schemaTypeName = 'IngredientsHealthAspect'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/IngredientsHealthAspect'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'HealthAspectEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'IngredientsHealthAspect'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/IngredientsHealthAspect'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'HealthAspectEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 65891d48f..4282cd881 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 string $schemaTypeName = 'InsertAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/InsertAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'AddAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'InsertAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/InsertAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'AddAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 131762471..2e633ebd3 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 string $schemaTypeName = 'InstallAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/InstallAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'ConsumeAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'InstallAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/InstallAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'ConsumeAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 19ecd6682..80713b9cb 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 string $schemaTypeName = 'Installment'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Installment'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'PriceComponentTypeEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Installment'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Installment'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'PriceComponentTypeEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 ccc70339c..78205596d 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 string $schemaTypeName = 'InsuranceAgency'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'InsuranceAgency'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/InsuranceAgency'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/InsuranceAgency'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'FinancialService'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'FinancialService'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'An Insurance agency.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 ccf0de634..5e0caac10 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 string $schemaTypeName = 'Intangible'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Intangible'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Thing'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Intangible'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Intangible'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Thing'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 1f1a0a20e..ec931551e 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 string $schemaTypeName = 'Integer'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Integer'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Number'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Integer'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Integer'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Number'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 340e1bb31..6e16c49c3 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 string $schemaTypeName = 'InteractAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/InteractAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Action'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'InteractAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/InteractAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Action'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 86e0773aa..5eac0b6c5 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 string $schemaTypeName = 'InteractionCounter'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/InteractionCounter'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'StructuredValue'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'InteractionCounter'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/InteractionCounter'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'StructuredValue'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 85ffa2af8..49e8dbe0a 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 string $schemaTypeName = 'InternationalTrial'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/InternationalTrial'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalTrialDesign'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'InternationalTrial'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/InternationalTrial'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalTrialDesign'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 b17a0bc65..48b4a62c1 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 string $schemaTypeName = 'InternetCafe'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'InternetCafe'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/InternetCafe'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/InternetCafe'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'LocalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'LocalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'An internet cafe.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 574837d00..2b92e0fbf 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 string $schemaTypeName = 'InvestmentFund'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/InvestmentFund'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'InvestmentOrDeposit'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'InvestmentFund'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/InvestmentFund'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'InvestmentOrDeposit'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 11368d7ba..c39727096 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 string $schemaTypeName = 'InvestmentOrDeposit'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/InvestmentOrDeposit'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'FinancialProduct'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'InvestmentOrDeposit'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/InvestmentOrDeposit'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'FinancialProduct'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 d66f95434..1be8ff566 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 string $schemaTypeName = 'InviteAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/InviteAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CommunicateAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'InviteAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/InviteAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CommunicateAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 0e39ace10..390f872f3 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 string $schemaTypeName = 'Invoice'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Invoice'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Invoice'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Invoice'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 058e729ec..44b28ff7f 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 string $schemaTypeName = 'InvoicePrice'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/InvoicePrice'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'PriceTypeEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'InvoicePrice'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/InvoicePrice'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'PriceTypeEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 32de43ad9..7a8e2e2e9 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 string $schemaTypeName = 'ItemAvailability'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ItemAvailability'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Enumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'ItemAvailability'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ItemAvailability'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Enumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 ae477da0b..687e89956 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 string $schemaTypeName = 'ItemList'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ItemList'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'ItemList'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ItemList'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 04e9b055d..647856aee 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 string $schemaTypeName = 'ItemListOrderAscending'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ItemListOrderAscending'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'ItemListOrderType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'ItemListOrderAscending'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ItemListOrderAscending'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'ItemListOrderType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 aa247722a..5cc70c76d 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 string $schemaTypeName = 'ItemListOrderDescending'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ItemListOrderDescending'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'ItemListOrderType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'ItemListOrderDescending'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ItemListOrderDescending'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'ItemListOrderType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 16ec9d103..c29776e5d 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 string $schemaTypeName = 'ItemListOrderType'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ItemListOrderType'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Enumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'ItemListOrderType'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ItemListOrderType'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Enumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 8038beb0f..e4473730d 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 string $schemaTypeName = 'ItemListUnordered'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ItemListUnordered'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'ItemListOrderType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'ItemListUnordered'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ItemListUnordered'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'ItemListOrderType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 29d055b89..640b4e82a 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 string $schemaTypeName = 'ItemPage'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'ItemPage'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ItemPage'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ItemPage'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'WebPage'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'WebPage'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A page devoted to a single item, such as a particular product or hotel.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 457b93e8e..635f80109 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 string $schemaTypeName = 'JewelryStore'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'JewelryStore'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/JewelryStore'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/JewelryStore'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Store'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Store'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A jewelry store.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 3473c82af..5ccf08140 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 string $schemaTypeName = 'JobPosting'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/JobPosting'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'JobPosting'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/JobPosting'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 a6e644711..9349e32d9 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 string $schemaTypeName = 'JoinAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/JoinAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'InteractAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'JoinAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/JoinAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'InteractAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 a0985290c..3aae97c47 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 string $schemaTypeName = 'Joint'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Joint'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'AnatomicalStructure'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Joint'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Joint'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'AnatomicalStructure'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 690875587..7207e6dce 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 string $schemaTypeName = 'KosherDiet'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/KosherDiet'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'RestrictedDiet'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'KosherDiet'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/KosherDiet'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'RestrictedDiet'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 b466f0edc..387739eb6 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 string $schemaTypeName = 'LaboratoryScience'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/LaboratoryScience'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalSpecialty'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'LaboratoryScience'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/LaboratoryScience'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalSpecialty'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 7555a37e6..cc560fcb3 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 string $schemaTypeName = 'LakeBodyOfWater'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/LakeBodyOfWater'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'BodyOfWater'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'LakeBodyOfWater'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/LakeBodyOfWater'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'BodyOfWater'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 a24a65149..0923a8cb4 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 string $schemaTypeName = 'Landform'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Landform'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Place'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Landform'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Landform'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Place'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 8dd6929c9..e84672c4c 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 string $schemaTypeName = 'LandmarksOrHistoricalBuildings'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/LandmarksOrHistoricalBuildings'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Place'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'LandmarksOrHistoricalBuildings'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/LandmarksOrHistoricalBuildings'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Place'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 aac91f784..cc4dd3563 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 string $schemaTypeName = 'Language'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Language'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Language'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Language'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 aaab98e58..6dcdd40ff 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 string $schemaTypeName = 'LaserDiscFormat'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/LaserDiscFormat'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MusicReleaseFormatType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'LaserDiscFormat'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/LaserDiscFormat'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MusicReleaseFormatType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 595dddfd5..4b2113b62 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 string $schemaTypeName = 'LearningResource'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'LearningResource'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/LearningResource'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/LearningResource'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 e49df5d4d..a0b00a9a1 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 string $schemaTypeName = 'LeaveAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/LeaveAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'InteractAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'LeaveAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/LeaveAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'InteractAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 dc58dbea4..125b6537d 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 string $schemaTypeName = 'LeftHandDriving'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/LeftHandDriving'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'SteeringPositionValue'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'LeftHandDriving'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/LeftHandDriving'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'SteeringPositionValue'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 a8a2f947b..3cebaa7f5 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 string $schemaTypeName = 'LegalForceStatus'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/LegalForceStatus'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'StatusEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'LegalForceStatus'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/LegalForceStatus'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'StatusEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 7f95a7bf0..84907e562 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 string $schemaTypeName = 'LegalService'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'LegalService'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/LegalService'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/LegalService'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'LocalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'LocalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 115a1afca..e2c74a382 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 string $schemaTypeName = 'LegalValueLevel'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/LegalValueLevel'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Enumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'LegalValueLevel'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/LegalValueLevel'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Enumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 54b276087..2c147fe19 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 string $schemaTypeName = 'Legislation'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Legislation'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Legislation'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Legislation'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 e0255021b..a108fd09c 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 string $schemaTypeName = 'LegislationObject'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'LegislationObject'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/LegislationObject'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/LegislationObject'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Legislation'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Legislation'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 fe108ff26..0e7a51c22 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 string $schemaTypeName = 'LegislativeBuilding'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/LegislativeBuilding'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'GovernmentBuilding'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'LegislativeBuilding'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/LegislativeBuilding'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'GovernmentBuilding'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 b1b079f7a..e32b8c45f 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 string $schemaTypeName = 'LeisureTimeActivity'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/LeisureTimeActivity'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'PhysicalActivityCategory'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'LeisureTimeActivity'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/LeisureTimeActivity'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'PhysicalActivityCategory'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 ecbd4ce3c..4c3ce6239 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 string $schemaTypeName = 'LendAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/LendAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'TransferAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'LendAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/LendAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'TransferAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 3cd6d1db2..8c79ecb73 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 string $schemaTypeName = 'Library'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Library'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Library'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Library'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'LocalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'LocalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A library.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 6d5a4972a..065b28b04 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 string $schemaTypeName = 'LibrarySystem'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'LibrarySystem'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/LibrarySystem'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/LibrarySystem'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Organization'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Organization'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A [[LibrarySystem]] is a collaborative system amongst several libraries.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 a035b2695..a67a3f184 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 string $schemaTypeName = 'LifestyleModification'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/LifestyleModification'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalEntity'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'LifestyleModification'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/LifestyleModification'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalEntity'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 6f13a1bb1..b293d01fd 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 string $schemaTypeName = 'Ligament'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Ligament'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'AnatomicalStructure'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Ligament'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Ligament'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'AnatomicalStructure'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 fff2f9735..7f3279ec8 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 string $schemaTypeName = 'LikeAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/LikeAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'ReactAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'LikeAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/LikeAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'ReactAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 db95eee4a..e96f20a77 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 string $schemaTypeName = 'LimitedAvailability'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/LimitedAvailability'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'ItemAvailability'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'LimitedAvailability'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/LimitedAvailability'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'ItemAvailability'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 b111bfb1b..d2773324e 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 string $schemaTypeName = 'LimitedByGuaranteeCharity'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/LimitedByGuaranteeCharity'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'UKNonprofitType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'LimitedByGuaranteeCharity'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/LimitedByGuaranteeCharity'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'UKNonprofitType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 074b6f12a..8a555a8b2 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 string $schemaTypeName = 'LinkRole'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/LinkRole'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Role'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'LinkRole'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/LinkRole'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Role'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 01a3185c6..a488f2527 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 string $schemaTypeName = 'LiquorStore'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'LiquorStore'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/LiquorStore'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/LiquorStore'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Store'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Store'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A shop that sells alcoholic drinks such as wine, beer, whisky and other spirits.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 92b05ba7c..21e29addc 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 string $schemaTypeName = 'ListItem'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ListItem'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'ListItem'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ListItem'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 bd3dec11e..f66e1f7b0 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 string $schemaTypeName = 'ListPrice'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ListPrice'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'PriceTypeEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'ListPrice'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ListPrice'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'PriceTypeEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 8da958166..4f7865530 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 string $schemaTypeName = 'ListenAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ListenAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'ConsumeAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'ListenAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ListenAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'ConsumeAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 34d4945c9..49b616b49 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 string $schemaTypeName = 'LiteraryEvent'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/LiteraryEvent'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Event'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'LiteraryEvent'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/LiteraryEvent'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Event'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 03fa88906..a0c0515d5 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 string $schemaTypeName = 'LiveAlbum'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/LiveAlbum'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MusicAlbumProductionType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'LiveAlbum'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/LiveAlbum'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MusicAlbumProductionType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 0814dfe72..14e39650f 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 string $schemaTypeName = 'LiveBlogPosting'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'LiveBlogPosting'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/LiveBlogPosting'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/LiveBlogPosting'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'BlogPosting'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'BlogPosting'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 04d6002e3..19b9e97ca 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 string $schemaTypeName = 'LivingWithHealthAspect'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/LivingWithHealthAspect'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'HealthAspectEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'LivingWithHealthAspect'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/LivingWithHealthAspect'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'HealthAspectEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 67c468174..acb62ea0d 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 string $schemaTypeName = 'LoanOrCredit'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/LoanOrCredit'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'FinancialProduct'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'LoanOrCredit'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/LoanOrCredit'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'FinancialProduct'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 24d3120b9..251e2efb3 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 string $schemaTypeName = 'LocalBusiness'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'LocalBusiness'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/LocalBusiness'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/LocalBusiness'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Place'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Place'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 8d712815d..004275a3f 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 string $schemaTypeName = 'LocationFeatureSpecification'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/LocationFeatureSpecification'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'PropertyValue'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'LocationFeatureSpecification'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/LocationFeatureSpecification'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'PropertyValue'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 b1a06a02d..1e6b23447 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 string $schemaTypeName = 'LockerDelivery'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/LockerDelivery'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'DeliveryMethod'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'LockerDelivery'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/LockerDelivery'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'DeliveryMethod'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 faaa16914..a6a7e5095 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 string $schemaTypeName = 'Locksmith'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Locksmith'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Locksmith'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Locksmith'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'HomeAndConstructionBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'HomeAndConstructionBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A locksmith.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 b4e42a4a8..1dfa95e63 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 string $schemaTypeName = 'LodgingBusiness'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'LodgingBusiness'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/LodgingBusiness'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/LodgingBusiness'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'LocalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'LocalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A lodging business, such as a motel, hotel, or inn.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 a63805eef..74768963e 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 string $schemaTypeName = 'LodgingReservation'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/LodgingReservation'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Reservation'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'LodgingReservation'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/LodgingReservation'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Reservation'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 295f3a7f5..d675e6813 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 string $schemaTypeName = 'Longitudinal'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Longitudinal'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalObservationalStudyDesign'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Longitudinal'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Longitudinal'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalObservationalStudyDesign'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 b971ccabc..cb803342e 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 string $schemaTypeName = 'LoseAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/LoseAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'AchieveAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'LoseAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/LoseAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'AchieveAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 2d96ec86b..192166d90 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 string $schemaTypeName = 'LowCalorieDiet'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/LowCalorieDiet'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'RestrictedDiet'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'LowCalorieDiet'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/LowCalorieDiet'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'RestrictedDiet'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 fc4b00356..dac213e13 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 string $schemaTypeName = 'LowFatDiet'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/LowFatDiet'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'RestrictedDiet'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'LowFatDiet'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/LowFatDiet'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'RestrictedDiet'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 5f3fb0e11..5554752b1 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 string $schemaTypeName = 'LowLactoseDiet'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/LowLactoseDiet'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'RestrictedDiet'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'LowLactoseDiet'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/LowLactoseDiet'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'RestrictedDiet'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 030566845..7f1f427af 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 string $schemaTypeName = 'LowSaltDiet'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/LowSaltDiet'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'RestrictedDiet'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'LowSaltDiet'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/LowSaltDiet'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'RestrictedDiet'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 655a55849..42aaf40c8 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 string $schemaTypeName = 'Lung'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Lung'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'PhysicalExam'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Lung'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Lung'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'PhysicalExam'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 02ced9feb..b89df9f76 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 string $schemaTypeName = 'LymphaticVessel'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/LymphaticVessel'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Vessel'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'LymphaticVessel'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/LymphaticVessel'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Vessel'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 181144185..fe9205941 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 string $schemaTypeName = 'MRI'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MRI'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalImagingTechnique'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'MRI'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MRI'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalImagingTechnique'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 9e539fe8e..98ab9f77e 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 string $schemaTypeName = 'MSRP'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MSRP'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'PriceTypeEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'MSRP'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MSRP'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'PriceTypeEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 4f15a1b77..064961fd6 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 string $schemaTypeName = 'Male'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Male'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'GenderType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Male'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Male'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'GenderType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 678b3124d..03b0163ef 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 string $schemaTypeName = 'Manuscript'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Manuscript'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Manuscript'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Manuscript'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 d0a0f1805..f98e4fe62 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 string $schemaTypeName = 'Map'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Map'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Map'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Map'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A map.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 8a4f50fb2..2a4aefe99 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 string $schemaTypeName = 'MapCategoryType'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MapCategoryType'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Enumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'MapCategoryType'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MapCategoryType'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Enumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 3a8c0d82c..ac5d5be5f 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 string $schemaTypeName = 'MarryAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MarryAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'InteractAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'MarryAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MarryAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'InteractAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 a791788fd..051e4d089 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 string $schemaTypeName = 'Mass'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Mass'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Quantity'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Mass'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Mass'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Quantity'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 f10a5315a..1c6bfa3f6 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 string $schemaTypeName = 'MathSolver'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'MathSolver'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MathSolver'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MathSolver'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A math solver which is capable of solving a subset of mathematical problems.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 630812091..aca180fb3 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 string $schemaTypeName = 'MaximumDoseSchedule'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MaximumDoseSchedule'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'DoseSchedule'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'MaximumDoseSchedule'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MaximumDoseSchedule'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'DoseSchedule'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 20b784340..5055e8dc2 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 string $schemaTypeName = 'MayTreatHealthAspect'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MayTreatHealthAspect'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'HealthAspectEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'MayTreatHealthAspect'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MayTreatHealthAspect'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'HealthAspectEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 531225a5a..675527f03 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 string $schemaTypeName = 'MeasurementTypeEnumeration'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MeasurementTypeEnumeration'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Enumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'MeasurementTypeEnumeration'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MeasurementTypeEnumeration'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Enumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 344499a29..608456386 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 string $schemaTypeName = 'MediaGallery'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'MediaGallery'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MediaGallery'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MediaGallery'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CollectionPage'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CollectionPage'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 8fbe28bf9..20b1b3f6c 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 string $schemaTypeName = 'MediaManipulationRatingEnumeration'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MediaManipulationRatingEnumeration'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Enumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'MediaManipulationRatingEnumeration'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MediaManipulationRatingEnumeration'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Enumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 8b5a31e32..57f6c312c 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 string $schemaTypeName = 'MediaObject'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'MediaObject'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MediaObject'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MediaObject'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 0b7f57f0a..303b9a8db 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 string $schemaTypeName = 'MediaReview'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'MediaReview'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MediaReview'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MediaReview'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Review'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Review'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 55aa80f9c..9a5497039 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 string $schemaTypeName = 'MediaReviewItem'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'MediaReviewItem'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MediaReviewItem'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MediaReviewItem'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 45078f093..f2240e8ae 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 string $schemaTypeName = 'MediaSubscription'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MediaSubscription'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'MediaSubscription'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MediaSubscription'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 dea4fe767..97f956f08 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 string $schemaTypeName = 'MedicalAudience'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MedicalAudience'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'PeopleAudience'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'MedicalAudience'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MedicalAudience'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'PeopleAudience'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 fda2f6069..2f0692ece 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 string $schemaTypeName = 'MedicalAudienceType'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MedicalAudienceType'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'MedicalAudienceType'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MedicalAudienceType'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 9ffe1d8bb..37dab4d48 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 string $schemaTypeName = 'MedicalBusiness'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'MedicalBusiness'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MedicalBusiness'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MedicalBusiness'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'LocalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'LocalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 8db6c6847..ac69c9ab3 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 string $schemaTypeName = 'MedicalCause'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MedicalCause'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalEntity'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'MedicalCause'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MedicalCause'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalEntity'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 8cd687eeb..227b27186 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 string $schemaTypeName = 'MedicalClinic'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'MedicalClinic'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MedicalClinic'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MedicalClinic'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 255bd6427..93b15ad60 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 string $schemaTypeName = 'MedicalCode'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MedicalCode'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalIntangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'MedicalCode'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MedicalCode'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalIntangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 56aba81aa..4a4c51776 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 string $schemaTypeName = 'MedicalCondition'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MedicalCondition'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalEntity'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'MedicalCondition'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MedicalCondition'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalEntity'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 aaf1d0a17..3dcd98c7d 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 string $schemaTypeName = 'MedicalConditionStage'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MedicalConditionStage'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalIntangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'MedicalConditionStage'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MedicalConditionStage'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalIntangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 06cdc3fb2..3cb95aaae 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 string $schemaTypeName = 'MedicalContraindication'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MedicalContraindication'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalEntity'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'MedicalContraindication'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MedicalContraindication'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalEntity'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 8b2640348..4726613aa 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 string $schemaTypeName = 'MedicalDevice'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MedicalDevice'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalEntity'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'MedicalDevice'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MedicalDevice'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalEntity'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 1359119c1..e1ae7d66d 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 string $schemaTypeName = 'MedicalDevicePurpose'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MedicalDevicePurpose'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'MedicalDevicePurpose'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MedicalDevicePurpose'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 370cf1cd6..2cb3163b9 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 string $schemaTypeName = 'MedicalEntity'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MedicalEntity'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Thing'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'MedicalEntity'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MedicalEntity'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Thing'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 b2d443534..17caaa2d3 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 string $schemaTypeName = 'MedicalEnumeration'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MedicalEnumeration'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Enumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'MedicalEnumeration'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MedicalEnumeration'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Enumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 efde80339..4cb5d8eb3 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 string $schemaTypeName = 'MedicalEvidenceLevel'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MedicalEvidenceLevel'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'MedicalEvidenceLevel'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MedicalEvidenceLevel'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 f53da4534..ea2e2d7c7 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 string $schemaTypeName = 'MedicalGuideline'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MedicalGuideline'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalEntity'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'MedicalGuideline'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MedicalGuideline'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalEntity'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 30d8afd3a..6cb17694b 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 string $schemaTypeName = 'MedicalGuidelineContraindication'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MedicalGuidelineContraindication'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalGuideline'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'MedicalGuidelineContraindication'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MedicalGuidelineContraindication'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalGuideline'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 9af2554c0..fcd462de0 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 string $schemaTypeName = 'MedicalGuidelineRecommendation'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MedicalGuidelineRecommendation'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalGuideline'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'MedicalGuidelineRecommendation'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MedicalGuidelineRecommendation'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalGuideline'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 5f290c2e5..9571d6fa4 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 string $schemaTypeName = 'MedicalImagingTechnique'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MedicalImagingTechnique'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'MedicalImagingTechnique'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MedicalImagingTechnique'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 4cb6a95ce..79e6498db 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 string $schemaTypeName = 'MedicalIndication'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MedicalIndication'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalEntity'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'MedicalIndication'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MedicalIndication'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalEntity'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 022f6488d..44442441f 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 string $schemaTypeName = 'MedicalIntangible'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MedicalIntangible'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalEntity'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'MedicalIntangible'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MedicalIntangible'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalEntity'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 9511905f4..38beb9f75 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 string $schemaTypeName = 'MedicalObservationalStudy'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MedicalObservationalStudy'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalStudy'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'MedicalObservationalStudy'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MedicalObservationalStudy'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalStudy'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 871f85783..fe72d3d34 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 string $schemaTypeName = 'MedicalObservationalStudyDesign'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MedicalObservationalStudyDesign'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'MedicalObservationalStudyDesign'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MedicalObservationalStudyDesign'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 552e0deb8..4b02ffbb8 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 string $schemaTypeName = 'MedicalOrganization'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'MedicalOrganization'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MedicalOrganization'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MedicalOrganization'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Organization'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Organization'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A medical organization (physical or not), such as hospital, institution or clinic.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 ca6ab1dfb..dafeeddcf 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 string $schemaTypeName = 'MedicalProcedure'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MedicalProcedure'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalEntity'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'MedicalProcedure'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MedicalProcedure'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalEntity'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 4600f15a0..a15e25593 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 string $schemaTypeName = 'MedicalProcedureType'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MedicalProcedureType'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'MedicalProcedureType'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MedicalProcedureType'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 5da1c8a1a..3c0661dcc 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 string $schemaTypeName = 'MedicalResearcher'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MedicalResearcher'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalAudienceType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'MedicalResearcher'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MedicalResearcher'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalAudienceType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 c54807449..c8738d472 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 string $schemaTypeName = 'MedicalRiskCalculator'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MedicalRiskCalculator'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalRiskEstimator'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'MedicalRiskCalculator'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MedicalRiskCalculator'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalRiskEstimator'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 88867892a..983431954 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 string $schemaTypeName = 'MedicalRiskEstimator'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MedicalRiskEstimator'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalEntity'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'MedicalRiskEstimator'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MedicalRiskEstimator'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalEntity'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 42bc9dc8b..1f1cd74a1 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 string $schemaTypeName = 'MedicalRiskFactor'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MedicalRiskFactor'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalEntity'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'MedicalRiskFactor'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MedicalRiskFactor'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalEntity'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 b0e771e89..537c82708 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 string $schemaTypeName = 'MedicalRiskScore'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MedicalRiskScore'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalRiskEstimator'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'MedicalRiskScore'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MedicalRiskScore'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalRiskEstimator'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 b528b71b1..39c1cfd30 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 string $schemaTypeName = 'MedicalScholarlyArticle'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'MedicalScholarlyArticle'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MedicalScholarlyArticle'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MedicalScholarlyArticle'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'ScholarlyArticle'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'ScholarlyArticle'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A scholarly article in the medical domain.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 d317c1afa..a8802f937 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 string $schemaTypeName = 'MedicalSign'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MedicalSign'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalSignOrSymptom'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'MedicalSign'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MedicalSign'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalSignOrSymptom'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 c4fa890dd..1625149c7 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 string $schemaTypeName = 'MedicalSignOrSymptom'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MedicalSignOrSymptom'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalCondition'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'MedicalSignOrSymptom'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MedicalSignOrSymptom'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalCondition'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 78756acea..130f45890 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 string $schemaTypeName = 'MedicalSpecialty'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MedicalSpecialty'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Specialty'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'MedicalSpecialty'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MedicalSpecialty'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Specialty'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 6df0dfacf..d1024f33a 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 string $schemaTypeName = 'MedicalStudy'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MedicalStudy'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalEntity'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'MedicalStudy'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MedicalStudy'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalEntity'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 9b5726ee8..83d780fce 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 string $schemaTypeName = 'MedicalStudyStatus'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MedicalStudyStatus'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'MedicalStudyStatus'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MedicalStudyStatus'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 a66edb546..4379a9f0d 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 string $schemaTypeName = 'MedicalSymptom'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MedicalSymptom'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalSignOrSymptom'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'MedicalSymptom'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MedicalSymptom'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalSignOrSymptom'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 2dd510f5d..86df1662d 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 string $schemaTypeName = 'MedicalTest'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MedicalTest'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalEntity'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'MedicalTest'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MedicalTest'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalEntity'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 06539efc0..21c3584c7 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 string $schemaTypeName = 'MedicalTestPanel'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MedicalTestPanel'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalTest'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'MedicalTestPanel'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MedicalTestPanel'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalTest'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 e80caeb4b..841fcbd67 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 string $schemaTypeName = 'MedicalTherapy'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MedicalTherapy'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'TherapeuticProcedure'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'MedicalTherapy'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MedicalTherapy'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'TherapeuticProcedure'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 1f6589755..73d310f70 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 string $schemaTypeName = 'MedicalTrial'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MedicalTrial'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalStudy'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'MedicalTrial'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MedicalTrial'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalStudy'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 565a32c19..fb3c1c0f3 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 string $schemaTypeName = 'MedicalTrialDesign'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MedicalTrialDesign'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'MedicalTrialDesign'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MedicalTrialDesign'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 ad700cc38..745071b9e 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 string $schemaTypeName = 'MedicalWebPage'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'MedicalWebPage'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MedicalWebPage'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MedicalWebPage'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'WebPage'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'WebPage'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A web page that provides medical information.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 0a6e694ae..342c069e3 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 string $schemaTypeName = 'MedicineSystem'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MedicineSystem'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'MedicineSystem'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MedicineSystem'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 68923a53e..19ba03bfe 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 string $schemaTypeName = 'MeetingRoom'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'MeetingRoom'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MeetingRoom'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MeetingRoom'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Room'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Room'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 7ae43f3c1..3f5784918 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 string $schemaTypeName = 'MensClothingStore'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'MensClothingStore'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MensClothingStore'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MensClothingStore'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Store'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Store'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A men\'s clothing store.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 58c636bec..16a4efc97 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 string $schemaTypeName = 'Menu'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Menu'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Menu'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Menu'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A structured representation of food or drink items available from a FoodEstablishment.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 727359d9c..f45de1f79 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 string $schemaTypeName = 'MenuItem'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MenuItem'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'MenuItem'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MenuItem'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 ea9c0a46e..8f86c5816 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 string $schemaTypeName = 'MenuSection'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'MenuSection'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MenuSection'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MenuSection'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 62fbd7e26..f8a310afe 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 string $schemaTypeName = 'MerchantReturnEnumeration'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MerchantReturnEnumeration'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Enumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'MerchantReturnEnumeration'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MerchantReturnEnumeration'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Enumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 a4edbc5e8..c2e53b5b3 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 string $schemaTypeName = 'MerchantReturnFiniteReturnWindow'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MerchantReturnFiniteReturnWindow'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MerchantReturnEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'MerchantReturnFiniteReturnWindow'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MerchantReturnFiniteReturnWindow'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MerchantReturnEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 da561b62b..e64e45eea 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 string $schemaTypeName = 'MerchantReturnNotPermitted'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MerchantReturnNotPermitted'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MerchantReturnEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'MerchantReturnNotPermitted'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MerchantReturnNotPermitted'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MerchantReturnEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 439ac0d0e..f563f3ef4 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 string $schemaTypeName = 'MerchantReturnPolicy'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MerchantReturnPolicy'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'MerchantReturnPolicy'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MerchantReturnPolicy'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 3a1965315..93b2ce9d6 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 string $schemaTypeName = 'MerchantReturnPolicySeasonalOverride'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MerchantReturnPolicySeasonalOverride'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'MerchantReturnPolicySeasonalOverride'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MerchantReturnPolicySeasonalOverride'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 732310fc1..0e8f0904f 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 string $schemaTypeName = 'MerchantReturnUnlimitedWindow'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MerchantReturnUnlimitedWindow'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MerchantReturnEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'MerchantReturnUnlimitedWindow'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MerchantReturnUnlimitedWindow'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MerchantReturnEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 ace75b2cd..808d1227f 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 string $schemaTypeName = 'MerchantReturnUnspecified'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MerchantReturnUnspecified'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MerchantReturnEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'MerchantReturnUnspecified'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MerchantReturnUnspecified'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MerchantReturnEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 531ce3c3b..7b9d78369 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 string $schemaTypeName = 'Message'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Message'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Message'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Message'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A single message from a sender to one or more organizations or people.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 d84d1f817..bff0d93b9 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 string $schemaTypeName = 'MiddleSchool'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'MiddleSchool'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MiddleSchool'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MiddleSchool'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'EducationalOrganization'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'EducationalOrganization'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A middle school (typically for children aged around 11-14, although this varies somewhat).'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 3b4ca3166..be5681c6d 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 string $schemaTypeName = 'Midwifery'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Midwifery'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Midwifery'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Midwifery'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 4f6697e2d..1e7da3ae5 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 string $schemaTypeName = 'MinimumAdvertisedPrice'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MinimumAdvertisedPrice'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'PriceTypeEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'MinimumAdvertisedPrice'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MinimumAdvertisedPrice'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'PriceTypeEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 6f6169424..9d39a59eb 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 string $schemaTypeName = 'MisconceptionsHealthAspect'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MisconceptionsHealthAspect'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'HealthAspectEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'MisconceptionsHealthAspect'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MisconceptionsHealthAspect'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'HealthAspectEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 f334437e2..49d18a98e 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 string $schemaTypeName = 'MixedEventAttendanceMode'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MixedEventAttendanceMode'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'EventAttendanceModeEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'MixedEventAttendanceMode'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MixedEventAttendanceMode'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'EventAttendanceModeEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 0acb02158..8e9f396ee 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 string $schemaTypeName = 'MixtapeAlbum'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MixtapeAlbum'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MusicAlbumProductionType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'MixtapeAlbum'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MixtapeAlbum'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MusicAlbumProductionType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 871dd84f8..c884a69de 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 string $schemaTypeName = 'MobileApplication'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'MobileApplication'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MobileApplication'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MobileApplication'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'SoftwareApplication'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'SoftwareApplication'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 b561b1f96..e62979af7 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 string $schemaTypeName = 'MobilePhoneStore'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'MobilePhoneStore'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MobilePhoneStore'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MobilePhoneStore'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Store'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Store'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A store that sells mobile phones and related accessories.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 3faa38779..d67b3ca8c 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 string $schemaTypeName = 'MobileWebPlatform'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MobileWebPlatform'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'DigitalPlatformEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'MobileWebPlatform'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MobileWebPlatform'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'DigitalPlatformEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 ceab068e3..ec13346f3 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 string $schemaTypeName = 'MolecularEntity'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MolecularEntity'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'BioChemEntity'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'MolecularEntity'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MolecularEntity'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'BioChemEntity'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 b91699dac..cbc4942c9 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 string $schemaTypeName = 'Monday'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Monday'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'DayOfWeek'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Monday'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Monday'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'DayOfWeek'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 a630cc3cd..f673ca3fe 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 string $schemaTypeName = 'MonetaryAmount'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MonetaryAmount'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'StructuredValue'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'MonetaryAmount'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MonetaryAmount'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'StructuredValue'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 7bc452e4f..9b69fab4b 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 string $schemaTypeName = 'MonetaryAmountDistribution'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MonetaryAmountDistribution'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'QuantitativeValueDistribution'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'MonetaryAmountDistribution'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MonetaryAmountDistribution'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'QuantitativeValueDistribution'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 b76856d7d..a08b0d5ed 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 string $schemaTypeName = 'MonetaryGrant'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MonetaryGrant'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Grant'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'MonetaryGrant'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MonetaryGrant'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Grant'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 af725a9ad..83e8d3797 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 string $schemaTypeName = 'MoneyTransfer'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MoneyTransfer'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'TransferAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'MoneyTransfer'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MoneyTransfer'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'TransferAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 5b1f347a1..095be3d2c 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 string $schemaTypeName = 'MortgageLoan'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MortgageLoan'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'LoanOrCredit'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'MortgageLoan'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MortgageLoan'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'LoanOrCredit'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 26dac6295..ee217125c 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 string $schemaTypeName = 'Mosque'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Mosque'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'PlaceOfWorship'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Mosque'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Mosque'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'PlaceOfWorship'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 c637a13b4..211d97107 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 string $schemaTypeName = 'Motel'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Motel'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Motel'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Motel'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'LodgingBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'LodgingBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 a346b7abe..99a5b884b 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 string $schemaTypeName = 'Motorcycle'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Motorcycle'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Motorcycle'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Motorcycle'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Vehicle'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Vehicle'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A motorcycle or motorbike is a single-track, two-wheeled motor vehicle.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 07c9c920e..11cf03de4 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 string $schemaTypeName = 'MotorcycleDealer'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'MotorcycleDealer'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MotorcycleDealer'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MotorcycleDealer'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'AutomotiveBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'AutomotiveBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A motorcycle dealer.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 77736ef51..d4f5ea639 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 string $schemaTypeName = 'MotorcycleRepair'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'MotorcycleRepair'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MotorcycleRepair'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MotorcycleRepair'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'AutomotiveBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'AutomotiveBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A motorcycle repair shop.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 d60bd55ce..381078cd6 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 string $schemaTypeName = 'MotorizedBicycle'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'MotorizedBicycle'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MotorizedBicycle'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MotorizedBicycle'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Vehicle'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Vehicle'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 cfefbd6a9..f499925bb 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 string $schemaTypeName = 'Mountain'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Mountain'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Landform'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Mountain'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Mountain'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Landform'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 361929e95..9fcde3674 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 string $schemaTypeName = 'MoveAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MoveAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Action'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'MoveAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MoveAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Action'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 90d0e06ab..f180931ad 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 string $schemaTypeName = 'Movie'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Movie'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Movie'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Movie'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A movie.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 df60bbcb0..163159c2f 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 string $schemaTypeName = 'MovieClip'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'MovieClip'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MovieClip'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MovieClip'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Clip'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Clip'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A short segment/part of a movie.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 02820e67a..132fe9603 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 string $schemaTypeName = 'MovieRentalStore'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'MovieRentalStore'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MovieRentalStore'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MovieRentalStore'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Store'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Store'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A movie rental store.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 47dc297d4..d47eeb4d0 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 string $schemaTypeName = 'MovieSeries'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'MovieSeries'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MovieSeries'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MovieSeries'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CreativeWorkSeries'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CreativeWorkSeries'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A series of movies. Included movies can be indicated with the hasPart property.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 1a7406a81..bc80b50f8 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 string $schemaTypeName = 'MovieTheater'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'MovieTheater'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MovieTheater'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MovieTheater'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CivicStructure'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CivicStructure'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A movie theater.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 dcc07ca53..1d9f04cda 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 string $schemaTypeName = 'MovingCompany'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'MovingCompany'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MovingCompany'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MovingCompany'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'HomeAndConstructionBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'HomeAndConstructionBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A moving company.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 577123f74..2f530abd9 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 string $schemaTypeName = 'MultiCenterTrial'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MultiCenterTrial'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalTrialDesign'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'MultiCenterTrial'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MultiCenterTrial'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalTrialDesign'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 cd36403a3..ca4557951 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 string $schemaTypeName = 'MultiPlayer'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MultiPlayer'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'GamePlayMode'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'MultiPlayer'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MultiPlayer'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'GamePlayMode'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 61063fe7e..78ddf9c81 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 string $schemaTypeName = 'MulticellularParasite'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MulticellularParasite'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'InfectiousAgentClass'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'MulticellularParasite'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MulticellularParasite'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'InfectiousAgentClass'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 18c340e21..301707486 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 string $schemaTypeName = 'Muscle'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Muscle'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'AnatomicalStructure'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Muscle'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Muscle'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'AnatomicalStructure'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 691d2f72d..aabd1aac5 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 string $schemaTypeName = 'Musculoskeletal'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Musculoskeletal'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalSpecialty'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Musculoskeletal'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Musculoskeletal'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalSpecialty'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 1a62c5c9e..dd1557d82 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 string $schemaTypeName = 'MusculoskeletalExam'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MusculoskeletalExam'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'PhysicalExam'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'MusculoskeletalExam'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MusculoskeletalExam'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'PhysicalExam'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 0a0b361dc..f249353d1 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 string $schemaTypeName = 'Museum'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Museum'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CivicStructure'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Museum'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Museum'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CivicStructure'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 52a7bbdd3..e55b7037d 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 string $schemaTypeName = 'MusicAlbum'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'MusicAlbum'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MusicAlbum'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MusicAlbum'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MusicPlaylist'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MusicPlaylist'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A collection of music tracks.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 9618f4222..909c5daae 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 string $schemaTypeName = 'MusicAlbumProductionType'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MusicAlbumProductionType'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Enumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'MusicAlbumProductionType'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MusicAlbumProductionType'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Enumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 0c118fcbd..1631f71be 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 string $schemaTypeName = 'MusicAlbumReleaseType'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MusicAlbumReleaseType'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Enumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'MusicAlbumReleaseType'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MusicAlbumReleaseType'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Enumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 a78d61953..6070a811d 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 string $schemaTypeName = 'MusicComposition'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'MusicComposition'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MusicComposition'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MusicComposition'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A musical composition.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 1dc5e968c..4a9600e90 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 string $schemaTypeName = 'MusicEvent'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MusicEvent'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Event'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'MusicEvent'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MusicEvent'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Event'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 38eb5a434..424057021 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 string $schemaTypeName = 'MusicGroup'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'MusicGroup'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MusicGroup'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MusicGroup'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'PerformingGroup'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'PerformingGroup'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 e051da770..01b1582ad 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 string $schemaTypeName = 'MusicPlaylist'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'MusicPlaylist'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MusicPlaylist'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MusicPlaylist'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A collection of music tracks in playlist form.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 169369477..de7a4b058 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 string $schemaTypeName = 'MusicRecording'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'MusicRecording'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MusicRecording'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MusicRecording'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A music recording (track), usually a single song.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 3bb77ef9f..e73c3b731 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 string $schemaTypeName = 'MusicRelease'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'MusicRelease'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MusicRelease'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MusicRelease'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MusicPlaylist'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MusicPlaylist'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A MusicRelease is a specific release of a music album.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 074f44ccf..97f0312c9 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 string $schemaTypeName = 'MusicReleaseFormatType'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MusicReleaseFormatType'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Enumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'MusicReleaseFormatType'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MusicReleaseFormatType'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Enumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 d606a48d2..52c153952 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 string $schemaTypeName = 'MusicStore'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'MusicStore'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MusicStore'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MusicStore'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Store'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Store'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A music store.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 7499823eb..fdd684ff4 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 string $schemaTypeName = 'MusicVenue'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MusicVenue'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CivicStructure'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'MusicVenue'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MusicVenue'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CivicStructure'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 e1434ba60..ff6078f01 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 string $schemaTypeName = 'MusicVideoObject'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'MusicVideoObject'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/MusicVideoObject'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/MusicVideoObject'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MediaObject'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MediaObject'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A music video file.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 f81009b9b..3b386016d 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 string $schemaTypeName = 'NGO'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'NGO'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/NGO'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/NGO'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Organization'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Organization'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'Organization: Non-governmental Organization.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 a3cfe0210..9221b0334 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 string $schemaTypeName = 'NLNonprofitType'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/NLNonprofitType'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'NonprofitType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'NLNonprofitType'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/NLNonprofitType'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'NonprofitType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 8b833c731..2b964fa67 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 string $schemaTypeName = 'NailSalon'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'NailSalon'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/NailSalon'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/NailSalon'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'HealthAndBeautyBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'HealthAndBeautyBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A nail salon.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 c6e246d82..6b5994eb6 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 string $schemaTypeName = 'NarcoticConsideration'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/NarcoticConsideration'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'AdultOrientedEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'NarcoticConsideration'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/NarcoticConsideration'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'AdultOrientedEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 45880b417..67e73e7a4 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 string $schemaTypeName = 'Neck'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Neck'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'PhysicalExam'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Neck'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Neck'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'PhysicalExam'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 8a7695fe0..de07506b4 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 string $schemaTypeName = 'Nerve'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Nerve'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'AnatomicalStructure'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Nerve'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Nerve'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'AnatomicalStructure'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 ee7cd80dd..ce1e2089a 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 string $schemaTypeName = 'Neuro'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Neuro'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'PhysicalExam'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Neuro'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Neuro'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'PhysicalExam'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 72af63302..344cde74a 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 string $schemaTypeName = 'Neurologic'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Neurologic'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalSpecialty'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Neurologic'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Neurologic'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalSpecialty'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 c4ac75c9a..1d3bb0e56 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 string $schemaTypeName = 'NewCondition'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/NewCondition'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'OfferItemCondition'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'NewCondition'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/NewCondition'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'OfferItemCondition'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 c3aee7d50..65ad6ce55 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 string $schemaTypeName = 'NewsArticle'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'NewsArticle'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/NewsArticle'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/NewsArticle'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Article'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Article'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 c9ea3c280..dc872f3b1 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 string $schemaTypeName = 'NewsMediaOrganization'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'NewsMediaOrganization'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/NewsMediaOrganization'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/NewsMediaOrganization'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Organization'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Organization'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A News/Media organization such as a newspaper or TV station.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 d53c23aae..6a1e85751 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 string $schemaTypeName = 'Newspaper'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Newspaper'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Newspaper'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Newspaper'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Periodical'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Periodical'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 59500db59..2d6f1c7d8 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 string $schemaTypeName = 'NightClub'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'NightClub'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/NightClub'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/NightClub'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'EntertainmentBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'EntertainmentBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A nightclub or discotheque.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 1f531a7ff..3c6951c9a 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 string $schemaTypeName = 'NoninvasiveProcedure'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/NoninvasiveProcedure'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalProcedureType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'NoninvasiveProcedure'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/NoninvasiveProcedure'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalProcedureType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 baeb4ea07..23241ae33 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 string $schemaTypeName = 'Nonprofit501a'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Nonprofit501a'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'USNonprofitType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Nonprofit501a'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Nonprofit501a'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'USNonprofitType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 ca76c6164..01aee525e 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 string $schemaTypeName = 'Nonprofit501c1'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Nonprofit501c1'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'USNonprofitType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Nonprofit501c1'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Nonprofit501c1'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'USNonprofitType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 370dfc9d3..17b672844 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 string $schemaTypeName = 'Nonprofit501c10'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Nonprofit501c10'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'USNonprofitType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Nonprofit501c10'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Nonprofit501c10'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'USNonprofitType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 ff0ee3f71..11011a0f6 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 string $schemaTypeName = 'Nonprofit501c11'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Nonprofit501c11'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'USNonprofitType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Nonprofit501c11'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Nonprofit501c11'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'USNonprofitType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 5f52bdf05..340ffa481 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 string $schemaTypeName = 'Nonprofit501c12'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Nonprofit501c12'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'USNonprofitType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Nonprofit501c12'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Nonprofit501c12'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'USNonprofitType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 24bb2f241..a26405667 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 string $schemaTypeName = 'Nonprofit501c13'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Nonprofit501c13'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'USNonprofitType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Nonprofit501c13'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Nonprofit501c13'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'USNonprofitType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 926150a99..0eaf554c3 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 string $schemaTypeName = 'Nonprofit501c14'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Nonprofit501c14'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'USNonprofitType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Nonprofit501c14'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Nonprofit501c14'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'USNonprofitType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 4841ff34d..d60f22b9c 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 string $schemaTypeName = 'Nonprofit501c15'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Nonprofit501c15'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'USNonprofitType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Nonprofit501c15'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Nonprofit501c15'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'USNonprofitType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 5f2ca37ae..b009668c5 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 string $schemaTypeName = 'Nonprofit501c16'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Nonprofit501c16'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'USNonprofitType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Nonprofit501c16'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Nonprofit501c16'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'USNonprofitType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 2a9e3b754..dd773f9a6 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 string $schemaTypeName = 'Nonprofit501c17'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Nonprofit501c17'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'USNonprofitType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Nonprofit501c17'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Nonprofit501c17'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'USNonprofitType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 8048b240a..55472e673 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 string $schemaTypeName = 'Nonprofit501c18'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Nonprofit501c18'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'USNonprofitType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Nonprofit501c18'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Nonprofit501c18'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'USNonprofitType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 977b57387..e4ce636af 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 string $schemaTypeName = 'Nonprofit501c19'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Nonprofit501c19'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'USNonprofitType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Nonprofit501c19'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Nonprofit501c19'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'USNonprofitType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 578c3854c..ac840f4bb 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 string $schemaTypeName = 'Nonprofit501c2'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Nonprofit501c2'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'USNonprofitType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Nonprofit501c2'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Nonprofit501c2'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'USNonprofitType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 15eca9b59..63b355114 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 string $schemaTypeName = 'Nonprofit501c20'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Nonprofit501c20'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'USNonprofitType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Nonprofit501c20'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Nonprofit501c20'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'USNonprofitType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 0a50c2a44..2f90a7bf0 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 string $schemaTypeName = 'Nonprofit501c21'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Nonprofit501c21'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'USNonprofitType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Nonprofit501c21'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Nonprofit501c21'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'USNonprofitType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 3e1ed5019..5188c8637 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 string $schemaTypeName = 'Nonprofit501c22'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Nonprofit501c22'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'USNonprofitType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Nonprofit501c22'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Nonprofit501c22'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'USNonprofitType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 88f8f3ea1..8806d5c78 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 string $schemaTypeName = 'Nonprofit501c23'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Nonprofit501c23'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'USNonprofitType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Nonprofit501c23'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Nonprofit501c23'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'USNonprofitType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 d391c0aab..27da6cfa2 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 string $schemaTypeName = 'Nonprofit501c24'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Nonprofit501c24'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'USNonprofitType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Nonprofit501c24'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Nonprofit501c24'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'USNonprofitType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 87665fcd0..9616923f5 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 string $schemaTypeName = 'Nonprofit501c25'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Nonprofit501c25'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'USNonprofitType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Nonprofit501c25'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Nonprofit501c25'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'USNonprofitType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 0e2a72548..e71a3d353 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 string $schemaTypeName = 'Nonprofit501c26'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Nonprofit501c26'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'USNonprofitType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Nonprofit501c26'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Nonprofit501c26'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'USNonprofitType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 4e970fad0..9a403d8bf 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 string $schemaTypeName = 'Nonprofit501c27'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Nonprofit501c27'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'USNonprofitType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Nonprofit501c27'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Nonprofit501c27'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'USNonprofitType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 204ebaa78..d726286c0 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 string $schemaTypeName = 'Nonprofit501c28'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Nonprofit501c28'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'USNonprofitType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Nonprofit501c28'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Nonprofit501c28'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'USNonprofitType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 a1942002d..a1214aaa8 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 string $schemaTypeName = 'Nonprofit501c3'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Nonprofit501c3'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'USNonprofitType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Nonprofit501c3'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Nonprofit501c3'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'USNonprofitType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 820aed4b7..3c2e28a35 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 string $schemaTypeName = 'Nonprofit501c4'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Nonprofit501c4'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'USNonprofitType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Nonprofit501c4'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Nonprofit501c4'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'USNonprofitType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 6d4ef8eca..deeba8e42 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 string $schemaTypeName = 'Nonprofit501c5'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Nonprofit501c5'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'USNonprofitType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Nonprofit501c5'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Nonprofit501c5'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'USNonprofitType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 58ec7560d..ab6906b30 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 string $schemaTypeName = 'Nonprofit501c6'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Nonprofit501c6'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'USNonprofitType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Nonprofit501c6'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Nonprofit501c6'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'USNonprofitType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 3cdce9c72..e60e35d26 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 string $schemaTypeName = 'Nonprofit501c7'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Nonprofit501c7'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'USNonprofitType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Nonprofit501c7'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Nonprofit501c7'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'USNonprofitType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 f175e3ce3..f4092c0ed 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 string $schemaTypeName = 'Nonprofit501c8'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Nonprofit501c8'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'USNonprofitType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Nonprofit501c8'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Nonprofit501c8'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'USNonprofitType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 960c42246..289429510 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 string $schemaTypeName = 'Nonprofit501c9'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Nonprofit501c9'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'USNonprofitType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Nonprofit501c9'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Nonprofit501c9'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'USNonprofitType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 fc02d17f4..2fc5e240c 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 string $schemaTypeName = 'Nonprofit501d'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Nonprofit501d'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'USNonprofitType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Nonprofit501d'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Nonprofit501d'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'USNonprofitType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 e37b5c2e8..1a0a582bd 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 string $schemaTypeName = 'Nonprofit501e'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Nonprofit501e'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'USNonprofitType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Nonprofit501e'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Nonprofit501e'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'USNonprofitType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 d33a4f4da..de45a06af 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 string $schemaTypeName = 'Nonprofit501f'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Nonprofit501f'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'USNonprofitType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Nonprofit501f'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Nonprofit501f'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'USNonprofitType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 faf183e3a..95a49d399 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 string $schemaTypeName = 'Nonprofit501k'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Nonprofit501k'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'USNonprofitType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Nonprofit501k'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Nonprofit501k'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'USNonprofitType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 a9e78e226..3294f3c5b 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 string $schemaTypeName = 'Nonprofit501n'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Nonprofit501n'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'USNonprofitType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Nonprofit501n'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Nonprofit501n'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'USNonprofitType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 76e45e1e4..e368f9487 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 string $schemaTypeName = 'Nonprofit501q'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Nonprofit501q'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'USNonprofitType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Nonprofit501q'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Nonprofit501q'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'USNonprofitType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 08e966381..2ae4efecd 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 string $schemaTypeName = 'Nonprofit527'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Nonprofit527'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'USNonprofitType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Nonprofit527'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Nonprofit527'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'USNonprofitType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 5f2969fba..f7f9cff8b 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 string $schemaTypeName = 'NonprofitANBI'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/NonprofitANBI'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'NLNonprofitType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'NonprofitANBI'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/NonprofitANBI'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'NLNonprofitType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 a4c14a173..e1b9649b4 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 string $schemaTypeName = 'NonprofitSBBI'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/NonprofitSBBI'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'NLNonprofitType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'NonprofitSBBI'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/NonprofitSBBI'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'NLNonprofitType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 0fa03659c..f3db30554 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 string $schemaTypeName = 'NonprofitType'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/NonprofitType'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Enumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'NonprofitType'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/NonprofitType'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Enumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 693114462..e7b1dffa6 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 string $schemaTypeName = 'Nose'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Nose'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'PhysicalExam'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Nose'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Nose'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'PhysicalExam'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 055c5786f..e2d2575cb 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 string $schemaTypeName = 'NotInForce'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/NotInForce'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'LegalForceStatus'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'NotInForce'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/NotInForce'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'LegalForceStatus'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 20c91ed3d..4e1b38d37 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 string $schemaTypeName = 'NotYetRecruiting'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/NotYetRecruiting'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalStudyStatus'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'NotYetRecruiting'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/NotYetRecruiting'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalStudyStatus'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 09d214460..66fdcaf8c 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 string $schemaTypeName = 'Notary'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Notary'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Notary'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Notary'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'LegalService'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'LegalService'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A notary.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 5d536d910..671dbb930 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 string $schemaTypeName = 'NoteDigitalDocument'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'NoteDigitalDocument'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/NoteDigitalDocument'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/NoteDigitalDocument'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'DigitalDocument'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'DigitalDocument'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A file containing a note, primarily for the author.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 e69fa6e65..2ddf0800a 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 string $schemaTypeName = 'Number'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Number'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Thing'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Number'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Number'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Thing'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 fd3f5b376..7f3fce474 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 string $schemaTypeName = 'Nursing'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Nursing'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Nursing'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Nursing'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 4f28bd68f..6d98043c0 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 string $schemaTypeName = 'NutritionInformation'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/NutritionInformation'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'StructuredValue'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'NutritionInformation'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/NutritionInformation'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'StructuredValue'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 cc7fcc346..1a1799070 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 string $schemaTypeName = 'OTC'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/OTC'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'DrugPrescriptionStatus'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'OTC'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/OTC'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'DrugPrescriptionStatus'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 6f4d4fa70..deca775a2 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 string $schemaTypeName = 'Observation'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Observation'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Observation'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Observation'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 a263b409b..45530a9f2 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 string $schemaTypeName = 'Observational'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Observational'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalObservationalStudyDesign'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Observational'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Observational'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalObservationalStudyDesign'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 45b038ae2..0d9b9e485 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 string $schemaTypeName = 'Obstetric'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Obstetric'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Obstetric'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Obstetric'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 786a3f81e..422c5a844 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 string $schemaTypeName = 'Occupation'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Occupation'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Occupation'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Occupation'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 3f8eade14..2d5f5c564 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 string $schemaTypeName = 'OccupationalActivity'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/OccupationalActivity'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'PhysicalActivityCategory'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'OccupationalActivity'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/OccupationalActivity'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'PhysicalActivityCategory'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 c1f7604ac..35b5f83c7 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 string $schemaTypeName = 'OccupationalExperienceRequirements'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/OccupationalExperienceRequirements'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'OccupationalExperienceRequirements'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/OccupationalExperienceRequirements'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 5897db3ad..998939c5e 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 string $schemaTypeName = 'OccupationalTherapy'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/OccupationalTherapy'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalTherapy'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'OccupationalTherapy'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/OccupationalTherapy'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalTherapy'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 842109a56..ebfdb4d65 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 string $schemaTypeName = 'OceanBodyOfWater'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/OceanBodyOfWater'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'BodyOfWater'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'OceanBodyOfWater'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/OceanBodyOfWater'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'BodyOfWater'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 cfff66ab6..d39896399 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 string $schemaTypeName = 'Offer'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Offer'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Offer'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Offer'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Intangible'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Intangible'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 a174635d7..b59638c56 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 string $schemaTypeName = 'OfferCatalog'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/OfferCatalog'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'ItemList'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'OfferCatalog'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/OfferCatalog'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'ItemList'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 8063e26da..436191e23 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 string $schemaTypeName = 'OfferForLease'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/OfferForLease'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Offer'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'OfferForLease'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/OfferForLease'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Offer'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 471f4c649..ddfd06d92 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 string $schemaTypeName = 'OfferForPurchase'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/OfferForPurchase'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Offer'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'OfferForPurchase'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/OfferForPurchase'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Offer'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 bd5e8a0fa..32c4c5191 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 string $schemaTypeName = 'OfferItemCondition'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/OfferItemCondition'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Enumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'OfferItemCondition'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/OfferItemCondition'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Enumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 57f1c2544..0d4ea7564 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 string $schemaTypeName = 'OfferShippingDetails'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/OfferShippingDetails'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'StructuredValue'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'OfferShippingDetails'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/OfferShippingDetails'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'StructuredValue'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 4c45806dd..a1599fafc 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 string $schemaTypeName = 'OfficeEquipmentStore'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'OfficeEquipmentStore'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/OfficeEquipmentStore'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/OfficeEquipmentStore'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Store'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Store'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'An office equipment store.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 81466545c..87c493b73 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 string $schemaTypeName = 'OfficialLegalValue'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/OfficialLegalValue'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'LegalValueLevel'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'OfficialLegalValue'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/OfficialLegalValue'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'LegalValueLevel'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 dfb63d892..5f67404c4 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 string $schemaTypeName = 'OfflineEventAttendanceMode'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/OfflineEventAttendanceMode'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'EventAttendanceModeEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'OfflineEventAttendanceMode'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/OfflineEventAttendanceMode'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'EventAttendanceModeEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 fe0c9471d..400f61d31 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 string $schemaTypeName = 'OfflinePermanently'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/OfflinePermanently'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'GameServerStatus'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'OfflinePermanently'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/OfflinePermanently'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'GameServerStatus'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 70a4b5c84..5423f7b3e 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 string $schemaTypeName = 'OfflineTemporarily'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/OfflineTemporarily'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'GameServerStatus'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'OfflineTemporarily'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/OfflineTemporarily'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'GameServerStatus'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 c70783b47..390e7d48b 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 string $schemaTypeName = 'OnDemandEvent'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/OnDemandEvent'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'PublicationEvent'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'OnDemandEvent'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/OnDemandEvent'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'PublicationEvent'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 b416ac024..870f729cb 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 string $schemaTypeName = 'OnSitePickup'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/OnSitePickup'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'DeliveryMethod'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'OnSitePickup'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/OnSitePickup'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'DeliveryMethod'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 ef66002d5..dbd993d0d 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 string $schemaTypeName = 'Oncologic'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Oncologic'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Oncologic'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Oncologic'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 201bd9a4e..45cd1dd11 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 string $schemaTypeName = 'OneTimePayments'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/OneTimePayments'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'GovernmentBenefitsType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'OneTimePayments'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/OneTimePayments'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'GovernmentBenefitsType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 dd6332d35..c42208038 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 string $schemaTypeName = 'Online'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Online'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'GameServerStatus'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Online'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Online'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'GameServerStatus'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 b0feb4129..ccb6b4b5b 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 string $schemaTypeName = 'OnlineBusiness'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'OnlineBusiness'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/OnlineBusiness'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/OnlineBusiness'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Organization'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Organization'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 13112f392..98130ad78 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 string $schemaTypeName = 'OnlineEventAttendanceMode'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/OnlineEventAttendanceMode'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'EventAttendanceModeEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'OnlineEventAttendanceMode'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/OnlineEventAttendanceMode'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'EventAttendanceModeEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 1bd7164b5..837a261fb 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 string $schemaTypeName = 'OnlineFull'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/OnlineFull'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'GameServerStatus'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'OnlineFull'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/OnlineFull'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'GameServerStatus'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 2f5df2bcb..ecdc4b8e5 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 string $schemaTypeName = 'OnlineOnly'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/OnlineOnly'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'ItemAvailability'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'OnlineOnly'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/OnlineOnly'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'ItemAvailability'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 6d3e34860..d00967ccf 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 string $schemaTypeName = 'OnlineStore'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'OnlineStore'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/OnlineStore'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/OnlineStore'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'OnlineBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'OnlineBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'An eCommerce site.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 e2b9544be..c53f6784d 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 string $schemaTypeName = 'OpenTrial'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/OpenTrial'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalTrialDesign'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'OpenTrial'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/OpenTrial'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalTrialDesign'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 57ca925fa..a268bb7d2 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 string $schemaTypeName = 'OpeningHoursSpecification'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/OpeningHoursSpecification'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'StructuredValue'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'OpeningHoursSpecification'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/OpeningHoursSpecification'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'StructuredValue'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 33133bc4a..617163b5a 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 string $schemaTypeName = 'OpinionNewsArticle'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'OpinionNewsArticle'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/OpinionNewsArticle'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/OpinionNewsArticle'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'NewsArticle'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'NewsArticle'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 f239479a9..d77c913d9 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 string $schemaTypeName = 'Optician'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Optician'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Optician'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Optician'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A store that sells reading glasses and similar devices for improving vision.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 47f8cd932..91bddab80 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 string $schemaTypeName = 'Optometric'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Optometric'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Optometric'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Optometric'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'The science or practice of testing visual acuity and prescribing corrective lenses.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 e00348ce5..459b68ea0 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 string $schemaTypeName = 'Order'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Order'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Order'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Order'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 b7cf7da3a..b23d6082a 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 string $schemaTypeName = 'OrderAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/OrderAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'TradeAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'OrderAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/OrderAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'TradeAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 e57c45bcd..8d70ea9cb 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 string $schemaTypeName = 'OrderCancelled'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/OrderCancelled'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'OrderStatus'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'OrderCancelled'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/OrderCancelled'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'OrderStatus'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 7b76599d3..ee35dda8e 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 string $schemaTypeName = 'OrderDelivered'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/OrderDelivered'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'OrderStatus'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'OrderDelivered'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/OrderDelivered'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'OrderStatus'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 7347eaf35..08fef75f9 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 string $schemaTypeName = 'OrderInTransit'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/OrderInTransit'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'OrderStatus'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'OrderInTransit'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/OrderInTransit'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'OrderStatus'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 420b966c8..e3cc57248 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 string $schemaTypeName = 'OrderItem'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/OrderItem'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'OrderItem'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/OrderItem'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 d2d7e8010..126a1d9c6 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 string $schemaTypeName = 'OrderPaymentDue'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/OrderPaymentDue'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'OrderStatus'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'OrderPaymentDue'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/OrderPaymentDue'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'OrderStatus'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 b06799109..d949f0025 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 string $schemaTypeName = 'OrderPickupAvailable'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/OrderPickupAvailable'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'OrderStatus'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'OrderPickupAvailable'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/OrderPickupAvailable'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'OrderStatus'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 1c55bd66a..b2a6f9561 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 string $schemaTypeName = 'OrderProblem'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/OrderProblem'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'OrderStatus'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'OrderProblem'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/OrderProblem'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'OrderStatus'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 9db75eba0..0b99fca08 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 string $schemaTypeName = 'OrderProcessing'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/OrderProcessing'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'OrderStatus'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'OrderProcessing'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/OrderProcessing'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'OrderStatus'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 6b1b82773..82f4af177 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 string $schemaTypeName = 'OrderReturned'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/OrderReturned'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'OrderStatus'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'OrderReturned'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/OrderReturned'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'OrderStatus'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 46cc9c7d1..613b4ae7a 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 string $schemaTypeName = 'OrderStatus'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/OrderStatus'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'StatusEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'OrderStatus'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/OrderStatus'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'StatusEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 2d3742dfc..c445051cb 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 string $schemaTypeName = 'Organization'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Organization'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Organization'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Organization'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Thing'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Thing'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'An organization such as a school, NGO, corporation, club, etc.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 356a3d142..74fcd4bab 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 string $schemaTypeName = 'OrganizationRole'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/OrganizationRole'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Role'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'OrganizationRole'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/OrganizationRole'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Role'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 a203973e7..49abf171d 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 string $schemaTypeName = 'OrganizeAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/OrganizeAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Action'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'OrganizeAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/OrganizeAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Action'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 d9668f19e..13c2395dc 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 string $schemaTypeName = 'OriginalMediaContent'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/OriginalMediaContent'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MediaManipulationRatingEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'OriginalMediaContent'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/OriginalMediaContent'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MediaManipulationRatingEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 2e250595e..9827f14cd 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 string $schemaTypeName = 'OriginalShippingFees'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/OriginalShippingFees'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'ReturnFeesEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'OriginalShippingFees'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/OriginalShippingFees'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'ReturnFeesEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 33b67a288..da29370e8 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 string $schemaTypeName = 'Osteopathic'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Osteopathic'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicineSystem'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Osteopathic'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Osteopathic'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicineSystem'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 0adfd0ef3..d8576b946 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 string $schemaTypeName = 'Otolaryngologic'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Otolaryngologic'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Otolaryngologic'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Otolaryngologic'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 1ab9dc294..18a2b689c 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 string $schemaTypeName = 'OutOfStock'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/OutOfStock'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'ItemAvailability'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'OutOfStock'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/OutOfStock'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'ItemAvailability'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 8b39fcc9d..615710739 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 string $schemaTypeName = 'OutletStore'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'OutletStore'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/OutletStore'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/OutletStore'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Store'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Store'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'An outlet store.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 0c040c73c..324bb49c8 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 string $schemaTypeName = 'OverviewHealthAspect'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/OverviewHealthAspect'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'HealthAspectEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'OverviewHealthAspect'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/OverviewHealthAspect'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'HealthAspectEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 da1aa6628..61c57f591 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 string $schemaTypeName = 'OwnershipInfo'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/OwnershipInfo'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'StructuredValue'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'OwnershipInfo'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/OwnershipInfo'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'StructuredValue'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 3bb8c48c4..50fe43361 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 string $schemaTypeName = 'PET'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/PET'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalImagingTechnique'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'PET'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/PET'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalImagingTechnique'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 a3fc9017d..6f050a231 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 string $schemaTypeName = 'PaidLeave'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/PaidLeave'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'GovernmentBenefitsType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'PaidLeave'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/PaidLeave'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'GovernmentBenefitsType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 57061134e..8a20e70d9 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 string $schemaTypeName = 'PaintAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/PaintAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CreateAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'PaintAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/PaintAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CreateAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 e9d3a25af..bcab0126f 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 string $schemaTypeName = 'Painting'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Painting'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Painting'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Painting'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A painting.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 3d4d06689..6135618b5 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 string $schemaTypeName = 'PalliativeProcedure'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/PalliativeProcedure'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalProcedure'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'PalliativeProcedure'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/PalliativeProcedure'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalProcedure'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 0e2830ce9..ca4a6307b 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 string $schemaTypeName = 'Paperback'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Paperback'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'BookFormatType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Paperback'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Paperback'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'BookFormatType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 0c3152e26..72717f20b 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 string $schemaTypeName = 'ParcelDelivery'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ParcelDelivery'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'ParcelDelivery'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ParcelDelivery'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 f0a0a14d6..5317c3d8c 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 string $schemaTypeName = 'ParcelService'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ParcelService'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'DeliveryMethod'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'ParcelService'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ParcelService'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'DeliveryMethod'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 0c9f36704..f359cf0a5 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 string $schemaTypeName = 'ParentAudience'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ParentAudience'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'PeopleAudience'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'ParentAudience'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ParentAudience'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'PeopleAudience'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 60471c8fa..eb2149262 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 string $schemaTypeName = 'ParentalSupport'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ParentalSupport'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'GovernmentBenefitsType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'ParentalSupport'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ParentalSupport'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'GovernmentBenefitsType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 8341b64d3..2da69f55a 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 string $schemaTypeName = 'Park'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Park'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CivicStructure'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Park'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Park'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CivicStructure'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 6f6e5192c..294787266 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 string $schemaTypeName = 'ParkingFacility'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ParkingFacility'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CivicStructure'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'ParkingFacility'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ParkingFacility'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CivicStructure'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 a20c8a4f6..4f7f0bf43 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 string $schemaTypeName = 'ParkingMap'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ParkingMap'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MapCategoryType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'ParkingMap'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ParkingMap'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MapCategoryType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 266a47945..49f2c6c93 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 string $schemaTypeName = 'PartiallyInForce'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/PartiallyInForce'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'LegalForceStatus'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'PartiallyInForce'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/PartiallyInForce'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'LegalForceStatus'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 053f3ca1f..f21f4aff7 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 string $schemaTypeName = 'Pathology'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Pathology'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalSpecialty'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Pathology'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Pathology'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalSpecialty'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 14e7b97c7..544b229dc 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 string $schemaTypeName = 'PathologyTest'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/PathologyTest'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalTest'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'PathologyTest'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/PathologyTest'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalTest'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 f2e723fd5..ceefb9bb5 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 string $schemaTypeName = 'Patient'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Patient'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Patient'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Patient'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalAudience'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalAudience'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A patient is any person recipient of health care services.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 eca449d4f..1036f9a83 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 string $schemaTypeName = 'PatientExperienceHealthAspect'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/PatientExperienceHealthAspect'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'HealthAspectEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'PatientExperienceHealthAspect'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/PatientExperienceHealthAspect'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'HealthAspectEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 b038292be..ece0d268d 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 string $schemaTypeName = 'PawnShop'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'PawnShop'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/PawnShop'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/PawnShop'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Store'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Store'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A shop that will buy, or lend money against the security of, personal possessions.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 260c14c56..d4d978753 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 string $schemaTypeName = 'PayAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/PayAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'TradeAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'PayAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/PayAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'TradeAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 a71e243d1..f725937d4 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 string $schemaTypeName = 'PaymentAutomaticallyApplied'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/PaymentAutomaticallyApplied'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'PaymentStatusType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'PaymentAutomaticallyApplied'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/PaymentAutomaticallyApplied'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'PaymentStatusType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 fdb5cf1e3..41255f7bc 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 string $schemaTypeName = 'PaymentCard'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/PaymentCard'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'PaymentMethod'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'PaymentCard'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/PaymentCard'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'PaymentMethod'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 8fc17669e..c862d978e 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 string $schemaTypeName = 'PaymentChargeSpecification'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/PaymentChargeSpecification'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'PriceSpecification'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'PaymentChargeSpecification'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/PaymentChargeSpecification'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'PriceSpecification'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 cde7c804d..6de9777b6 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 string $schemaTypeName = 'PaymentComplete'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/PaymentComplete'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'PaymentStatusType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'PaymentComplete'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/PaymentComplete'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'PaymentStatusType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 1224665ea..dcc24ad55 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 string $schemaTypeName = 'PaymentDeclined'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/PaymentDeclined'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'PaymentStatusType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'PaymentDeclined'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/PaymentDeclined'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'PaymentStatusType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 430075485..7a9e7c568 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 string $schemaTypeName = 'PaymentDue'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/PaymentDue'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'PaymentStatusType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'PaymentDue'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/PaymentDue'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'PaymentStatusType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 d1e01e0cc..cfc9eba76 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 string $schemaTypeName = 'PaymentMethod'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/PaymentMethod'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Enumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'PaymentMethod'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/PaymentMethod'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Enumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 fe97ec809..1645f1501 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 string $schemaTypeName = 'PaymentPastDue'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/PaymentPastDue'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'PaymentStatusType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'PaymentPastDue'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/PaymentPastDue'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'PaymentStatusType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 e0bc5531a..82895e20d 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 string $schemaTypeName = 'PaymentService'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/PaymentService'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'FinancialProduct'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'PaymentService'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/PaymentService'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'FinancialProduct'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 c7709111e..25861e295 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 string $schemaTypeName = 'PaymentStatusType'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/PaymentStatusType'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'StatusEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'PaymentStatusType'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/PaymentStatusType'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'StatusEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 28b45683a..c91bd9132 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 string $schemaTypeName = 'Pediatric'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Pediatric'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Pediatric'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Pediatric'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 31c2974f6..e1166d86d 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 string $schemaTypeName = 'PeopleAudience'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/PeopleAudience'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Audience'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'PeopleAudience'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/PeopleAudience'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Audience'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 878a9a596..a727be221 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 string $schemaTypeName = 'PercutaneousProcedure'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/PercutaneousProcedure'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalProcedureType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'PercutaneousProcedure'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/PercutaneousProcedure'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalProcedureType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 8ed2ef223..3733d8a63 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 string $schemaTypeName = 'PerformAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/PerformAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'PlayAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'PerformAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/PerformAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'PlayAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 0429edb80..79f70f5cd 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 string $schemaTypeName = 'PerformanceRole'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/PerformanceRole'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Role'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'PerformanceRole'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/PerformanceRole'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Role'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 7e9d040c6..df3a25662 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 string $schemaTypeName = 'PerformingArtsTheater'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/PerformingArtsTheater'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CivicStructure'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'PerformingArtsTheater'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/PerformingArtsTheater'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CivicStructure'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 b510c222b..273cabeaf 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 string $schemaTypeName = 'PerformingGroup'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'PerformingGroup'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/PerformingGroup'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/PerformingGroup'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Organization'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Organization'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A performance group, such as a band, an orchestra, or a circus.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 71a14001b..f0f392a92 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 string $schemaTypeName = 'Periodical'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Periodical'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Periodical'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Periodical'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CreativeWorkSeries'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CreativeWorkSeries'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 ab91c9873..719f5c405 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 string $schemaTypeName = 'Permit'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Permit'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Permit'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Permit'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 66da9c86b..105d0e90d 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 string $schemaTypeName = 'Person'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Person'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Person'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Person'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Thing'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Thing'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A person (alive, dead, undead, or fictional).'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 6fcfaddbb..0c08c8430 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 string $schemaTypeName = 'PetStore'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'PetStore'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/PetStore'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/PetStore'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Store'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Store'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A pet store.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 3737e22dd..ef0f6618a 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 string $schemaTypeName = 'Pharmacy'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Pharmacy'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Pharmacy'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Pharmacy'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A pharmacy or drugstore.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 ce8995bfd..1b3d45aea 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 string $schemaTypeName = 'PharmacySpecialty'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/PharmacySpecialty'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalSpecialty'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'PharmacySpecialty'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/PharmacySpecialty'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalSpecialty'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 fb48d1263..7e5f7ee02 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 string $schemaTypeName = 'Photograph'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Photograph'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Photograph'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Photograph'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A photograph.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 d20b7575b..3b1d0809b 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 string $schemaTypeName = 'PhotographAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/PhotographAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CreateAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'PhotographAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/PhotographAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CreateAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 77e5ecdd5..a633697a9 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 string $schemaTypeName = 'PhysicalActivity'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/PhysicalActivity'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'LifestyleModification'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'PhysicalActivity'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/PhysicalActivity'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'LifestyleModification'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 de7667145..c431cee15 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 string $schemaTypeName = 'PhysicalActivityCategory'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/PhysicalActivityCategory'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Enumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'PhysicalActivityCategory'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/PhysicalActivityCategory'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Enumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 d96c8208c..aa3862680 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 string $schemaTypeName = 'PhysicalExam'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/PhysicalExam'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalProcedure'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'PhysicalExam'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/PhysicalExam'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalProcedure'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 9f14d3a4b..a4bda710d 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 string $schemaTypeName = 'PhysicalTherapy'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/PhysicalTherapy'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalTherapy'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'PhysicalTherapy'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/PhysicalTherapy'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalTherapy'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 19d421ca4..ab1379c7f 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 string $schemaTypeName = 'Physician'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Physician'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Physician'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Physician'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalOrganization'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalOrganization'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A doctor\'s office.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 9296c2035..bd023aae4 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 string $schemaTypeName = 'Physiotherapy'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Physiotherapy'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Physiotherapy'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Physiotherapy'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 fc84f0ec0..25a7138f0 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 string $schemaTypeName = 'Place'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Place'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Thing'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Place'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Place'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Thing'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 37b8d2771..5b8f7ce48 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 string $schemaTypeName = 'PlaceOfWorship'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/PlaceOfWorship'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CivicStructure'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'PlaceOfWorship'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/PlaceOfWorship'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CivicStructure'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 24cecb372..eb63296a3 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 string $schemaTypeName = 'PlaceboControlledTrial'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/PlaceboControlledTrial'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalTrialDesign'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'PlaceboControlledTrial'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/PlaceboControlledTrial'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalTrialDesign'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 cf13519f0..7b53254dd 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 string $schemaTypeName = 'PlanAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/PlanAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'OrganizeAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'PlanAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/PlanAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'OrganizeAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 01b266f39..a37578ab6 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 string $schemaTypeName = 'PlasticSurgery'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'PlasticSurgery'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/PlasticSurgery'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/PlasticSurgery'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 5f60f6ce9..9f82d1503 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 string $schemaTypeName = 'Play'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Play'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Play'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Play'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 4a4f6f161..ce32dfb86 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 string $schemaTypeName = 'PlayAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/PlayAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Action'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'PlayAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/PlayAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Action'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 58d308b93..054a3a1a9 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 string $schemaTypeName = 'PlayGameAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/PlayGameAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'ConsumeAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'PlayGameAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/PlayGameAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'ConsumeAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 86f2da4b9..50886a7a8 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 string $schemaTypeName = 'Playground'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Playground'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CivicStructure'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Playground'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Playground'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CivicStructure'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 1d96ad8c3..50413b96c 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 string $schemaTypeName = 'Plumber'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Plumber'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Plumber'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Plumber'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'HomeAndConstructionBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'HomeAndConstructionBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A plumbing service.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 80e5ad4ca..73a364059 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 string $schemaTypeName = 'PodcastEpisode'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'PodcastEpisode'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/PodcastEpisode'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/PodcastEpisode'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Episode'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Episode'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A single episode of a podcast series.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 dcaeb33d4..98c97d634 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 string $schemaTypeName = 'PodcastSeason'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'PodcastSeason'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/PodcastSeason'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/PodcastSeason'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CreativeWorkSeason'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CreativeWorkSeason'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 138c6323e..25771a111 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 string $schemaTypeName = 'PodcastSeries'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'PodcastSeries'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/PodcastSeries'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/PodcastSeries'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CreativeWorkSeries'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CreativeWorkSeries'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 acd067df5..6fcdb8a7b 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 string $schemaTypeName = 'Podiatric'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Podiatric'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Podiatric'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Podiatric'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 100d1bb83..bc5e469c4 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 string $schemaTypeName = 'PoliceStation'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'PoliceStation'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/PoliceStation'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/PoliceStation'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'EmergencyService'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'EmergencyService'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A police station.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 7119d0716..3b1321ec9 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 string $schemaTypeName = 'Pond'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Pond'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'BodyOfWater'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Pond'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Pond'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'BodyOfWater'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 be1d56350..93c77d318 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 string $schemaTypeName = 'PostOffice'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'PostOffice'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/PostOffice'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/PostOffice'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'GovernmentOffice'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'GovernmentOffice'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A post office.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 e06d94594..de7c19afa 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 string $schemaTypeName = 'PostalAddress'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/PostalAddress'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'ContactPoint'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'PostalAddress'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/PostalAddress'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'ContactPoint'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 ef364abfb..f5aa2db16 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 string $schemaTypeName = 'PostalCodeRangeSpecification'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/PostalCodeRangeSpecification'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'StructuredValue'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'PostalCodeRangeSpecification'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/PostalCodeRangeSpecification'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'StructuredValue'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 7bb389e29..b7f94c48a 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 string $schemaTypeName = 'Poster'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Poster'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Poster'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Poster'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 f1ed1dd70..be488e8e8 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 string $schemaTypeName = 'PotentialActionStatus'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/PotentialActionStatus'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'ActionStatusType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'PotentialActionStatus'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/PotentialActionStatus'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'ActionStatusType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 025dd9da3..25bac1c14 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 string $schemaTypeName = 'PreOrder'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/PreOrder'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'ItemAvailability'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'PreOrder'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/PreOrder'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'ItemAvailability'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 80dc38561..c2d7ab6d6 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 string $schemaTypeName = 'PreOrderAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/PreOrderAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'TradeAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'PreOrderAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/PreOrderAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'TradeAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 76cdac469..0c1ca07d2 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 string $schemaTypeName = 'PreSale'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/PreSale'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'ItemAvailability'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'PreSale'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/PreSale'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'ItemAvailability'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 bbcb41378..1887ca617 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 string $schemaTypeName = 'PregnancyHealthAspect'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/PregnancyHealthAspect'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'HealthAspectEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'PregnancyHealthAspect'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/PregnancyHealthAspect'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'HealthAspectEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 7737e1981..3277e72ba 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 string $schemaTypeName = 'PrependAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/PrependAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'InsertAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'PrependAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/PrependAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'InsertAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 da23eccad..97f248a46 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 string $schemaTypeName = 'Preschool'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Preschool'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Preschool'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Preschool'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'EducationalOrganization'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'EducationalOrganization'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A preschool.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 0c7f6c207..b0b0daf07 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 string $schemaTypeName = 'PrescriptionOnly'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/PrescriptionOnly'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'DrugPrescriptionStatus'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'PrescriptionOnly'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/PrescriptionOnly'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'DrugPrescriptionStatus'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 b39725fbc..00ca437d7 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 string $schemaTypeName = 'PresentationDigitalDocument'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'PresentationDigitalDocument'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/PresentationDigitalDocument'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/PresentationDigitalDocument'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'DigitalDocument'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'DigitalDocument'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A file containing slides or used for a presentation.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 e2174684d..67c58be8e 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 string $schemaTypeName = 'PreventionHealthAspect'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/PreventionHealthAspect'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'HealthAspectEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'PreventionHealthAspect'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/PreventionHealthAspect'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'HealthAspectEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 3685fdac3..b818f553a 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 string $schemaTypeName = 'PreventionIndication'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/PreventionIndication'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalIndication'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'PreventionIndication'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/PreventionIndication'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalIndication'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 a701b3cca..b92101cd7 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 string $schemaTypeName = 'PriceComponentTypeEnumeration'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/PriceComponentTypeEnumeration'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Enumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'PriceComponentTypeEnumeration'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/PriceComponentTypeEnumeration'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Enumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 39589da43..ebcb9e9cf 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 string $schemaTypeName = 'PriceSpecification'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/PriceSpecification'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'StructuredValue'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'PriceSpecification'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/PriceSpecification'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'StructuredValue'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 8e6497f6f..8b1facb26 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 string $schemaTypeName = 'PriceTypeEnumeration'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/PriceTypeEnumeration'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Enumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'PriceTypeEnumeration'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/PriceTypeEnumeration'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Enumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 f5fa462a5..df132b56b 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 string $schemaTypeName = 'PrimaryCare'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'PrimaryCare'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/PrimaryCare'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/PrimaryCare'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 0ad296fe4..9a4abea7c 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 string $schemaTypeName = 'Prion'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Prion'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'InfectiousAgentClass'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Prion'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Prion'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'InfectiousAgentClass'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 3f72fdf91..8b04941bf 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 string $schemaTypeName = 'Product'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Product'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Thing'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Product'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Product'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Thing'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 e6ca42f13..0184a4ed4 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 string $schemaTypeName = 'ProductCollection'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'ProductCollection'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ProductCollection'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ProductCollection'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Collection'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Collection'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 70a968a1a..68e023722 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 string $schemaTypeName = 'ProductGroup'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'ProductGroup'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ProductGroup'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ProductGroup'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Product'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Product'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 2a425193b..2e6e79e02 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 string $schemaTypeName = 'ProductModel'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'ProductModel'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ProductModel'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ProductModel'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Product'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Product'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 6a4296d04..a3763d376 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 string $schemaTypeName = 'ProfessionalService'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'ProfessionalService'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ProfessionalService'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ProfessionalService'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'LocalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'LocalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 c4d35bc2d..58c23095c 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 string $schemaTypeName = 'ProfilePage'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'ProfilePage'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ProfilePage'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ProfilePage'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'WebPage'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'WebPage'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'Web page type: Profile page.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 210321399..17e8d20d5 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 string $schemaTypeName = 'PrognosisHealthAspect'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/PrognosisHealthAspect'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'HealthAspectEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'PrognosisHealthAspect'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/PrognosisHealthAspect'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'HealthAspectEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 054363a92..84011833e 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 string $schemaTypeName = 'ProgramMembership'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ProgramMembership'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'ProgramMembership'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ProgramMembership'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 044ab7831..cae2ba12e 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 string $schemaTypeName = 'Project'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Project'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Project'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Project'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Organization'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Organization'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 cbe01b25e..830f16626 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 string $schemaTypeName = 'PronounceableText'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/PronounceableText'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Text'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'PronounceableText'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/PronounceableText'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Text'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 f2808f1ea..2515510ab 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 string $schemaTypeName = 'Property'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Property'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Property'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Property'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 1b2ae6488..ca7af4a6c 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 string $schemaTypeName = 'PropertyValue'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/PropertyValue'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'StructuredValue'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'PropertyValue'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/PropertyValue'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'StructuredValue'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 60c370472..9ab6c6b71 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 string $schemaTypeName = 'PropertyValueSpecification'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/PropertyValueSpecification'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'PropertyValueSpecification'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/PropertyValueSpecification'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 ea8dd4580..e1c61563a 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 string $schemaTypeName = 'Protein'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Protein'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'BioChemEntity'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Protein'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Protein'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'BioChemEntity'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 d5cf2648b..a4bb98db7 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 string $schemaTypeName = 'Protozoa'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Protozoa'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'InfectiousAgentClass'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Protozoa'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Protozoa'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'InfectiousAgentClass'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 199ab65ca..8e8116709 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 string $schemaTypeName = 'Psychiatric'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Psychiatric'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Psychiatric'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Psychiatric'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 49a34e29b..114bd1873 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 string $schemaTypeName = 'PsychologicalTreatment'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/PsychologicalTreatment'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'TherapeuticProcedure'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'PsychologicalTreatment'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/PsychologicalTreatment'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'TherapeuticProcedure'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 9d3473be5..32c103427 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 string $schemaTypeName = 'PublicHealth'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'PublicHealth'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/PublicHealth'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/PublicHealth'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 9214f522b..51c4ef1f5 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 string $schemaTypeName = 'PublicHolidays'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/PublicHolidays'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'DayOfWeek'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'PublicHolidays'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/PublicHolidays'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'DayOfWeek'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 0d6359db7..2f1b16603 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 string $schemaTypeName = 'PublicSwimmingPool'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'PublicSwimmingPool'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/PublicSwimmingPool'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/PublicSwimmingPool'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'SportsActivityLocation'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'SportsActivityLocation'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A public swimming pool.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 d74844867..fdcf5cbeb 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 string $schemaTypeName = 'PublicToilet'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/PublicToilet'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CivicStructure'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'PublicToilet'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/PublicToilet'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CivicStructure'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 9703cef52..375ee7b78 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 string $schemaTypeName = 'PublicationEvent'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/PublicationEvent'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Event'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'PublicationEvent'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/PublicationEvent'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Event'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 8aebfcf20..3c4ac8c8d 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 string $schemaTypeName = 'PublicationIssue'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'PublicationIssue'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/PublicationIssue'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/PublicationIssue'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 999ccf436..588d4f983 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 string $schemaTypeName = 'PublicationVolume'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'PublicationVolume'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/PublicationVolume'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/PublicationVolume'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 7ac175f96..c3d4541b8 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 string $schemaTypeName = 'Pulmonary'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Pulmonary'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalSpecialty'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Pulmonary'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Pulmonary'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalSpecialty'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 492bf3dba..a2e0df50f 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 string $schemaTypeName = 'QAPage'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'QAPage'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/QAPage'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/QAPage'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'WebPage'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'WebPage'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 6d8c08812..f74c79ffd 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 string $schemaTypeName = 'QualitativeValue'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/QualitativeValue'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Enumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'QualitativeValue'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/QualitativeValue'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Enumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 d1c9fe270..8c9a1366f 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 string $schemaTypeName = 'QuantitativeValue'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/QuantitativeValue'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'StructuredValue'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'QuantitativeValue'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/QuantitativeValue'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'StructuredValue'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 e6f6f55cc..07f845372 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 string $schemaTypeName = 'QuantitativeValueDistribution'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/QuantitativeValueDistribution'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'StructuredValue'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'QuantitativeValueDistribution'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/QuantitativeValueDistribution'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'StructuredValue'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 956e41d5d..edc167b81 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 string $schemaTypeName = 'Quantity'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Quantity'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Quantity'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Quantity'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 ba07cd1e9..a5ebb2315 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 string $schemaTypeName = 'Question'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Question'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Question'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Question'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Comment'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Comment'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 7e502832d..7dfb6cbe2 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 string $schemaTypeName = 'Quiz'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Quiz'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Quiz'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Quiz'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'LearningResource'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'LearningResource'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'Quiz: A test of knowledge, skills and abilities.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 8739dd5a7..a8ec9f0e1 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 string $schemaTypeName = 'Quotation'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Quotation'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Quotation'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Quotation'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 e2923e06c..d1482ce51 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 string $schemaTypeName = 'QuoteAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/QuoteAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'TradeAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'QuoteAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/QuoteAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'TradeAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 4db68e199..a4f22acfa 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 string $schemaTypeName = 'RVPark'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/RVPark'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CivicStructure'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'RVPark'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/RVPark'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CivicStructure'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 e9a38df65..6a083a584 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 string $schemaTypeName = 'RadiationTherapy'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/RadiationTherapy'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalTherapy'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'RadiationTherapy'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/RadiationTherapy'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalTherapy'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 e0fb2f7b9..f2eb21dd7 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 string $schemaTypeName = 'RadioBroadcastService'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/RadioBroadcastService'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'BroadcastService'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'RadioBroadcastService'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/RadioBroadcastService'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'BroadcastService'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 fe970dbff..21eb29299 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 string $schemaTypeName = 'RadioChannel'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/RadioChannel'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'BroadcastChannel'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'RadioChannel'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/RadioChannel'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'BroadcastChannel'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 818dcd39e..96b88e964 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 string $schemaTypeName = 'RadioClip'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'RadioClip'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/RadioClip'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/RadioClip'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Clip'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Clip'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A short radio program or a segment/part of a radio program.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 793fc93cb..2f97cbaaf 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 string $schemaTypeName = 'RadioEpisode'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'RadioEpisode'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/RadioEpisode'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/RadioEpisode'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Episode'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Episode'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A radio episode which can be part of a series or season.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 652c37d26..ddf68f527 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 string $schemaTypeName = 'RadioSeason'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'RadioSeason'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/RadioSeason'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/RadioSeason'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CreativeWorkSeason'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CreativeWorkSeason'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'Season dedicated to radio broadcast and associated online delivery.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 141aa37d8..99a85ca70 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 string $schemaTypeName = 'RadioSeries'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'RadioSeries'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/RadioSeries'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/RadioSeries'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CreativeWorkSeries'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CreativeWorkSeries'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'CreativeWorkSeries dedicated to radio broadcast and associated online delivery.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 00203a540..10d4c6544 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 string $schemaTypeName = 'RadioStation'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'RadioStation'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/RadioStation'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/RadioStation'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'LocalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'LocalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A radio station.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 6a9d1008c..d53f44fd2 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 string $schemaTypeName = 'Radiography'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Radiography'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Thing'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Radiography'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Radiography'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Thing'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 e9faf1139..e4ce76a80 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 string $schemaTypeName = 'RandomizedTrial'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/RandomizedTrial'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalTrialDesign'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'RandomizedTrial'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/RandomizedTrial'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalTrialDesign'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 879849a9d..1a321b9d9 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 string $schemaTypeName = 'Rating'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Rating'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Rating'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Rating'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 962cd3c8b..6383b5a37 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 string $schemaTypeName = 'ReactAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ReactAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'AssessAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'ReactAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ReactAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'AssessAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 019feed62..742d184cb 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 string $schemaTypeName = 'ReadAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ReadAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'ConsumeAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'ReadAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ReadAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'ConsumeAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 7370d857d..fd4db77f6 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 string $schemaTypeName = 'ReadPermission'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ReadPermission'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'DigitalDocumentPermissionType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'ReadPermission'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ReadPermission'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'DigitalDocumentPermissionType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 a1501c27a..7daa339e9 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 string $schemaTypeName = 'RealEstateAgent'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'RealEstateAgent'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/RealEstateAgent'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/RealEstateAgent'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'LocalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'LocalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A real-estate agent.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 52fada180..3938110e6 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 string $schemaTypeName = 'RealEstateListing'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'RealEstateListing'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/RealEstateListing'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/RealEstateListing'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'WebPage'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'WebPage'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 23407bf6a..6034c3f5e 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 string $schemaTypeName = 'RearWheelDriveConfiguration'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/RearWheelDriveConfiguration'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'DriveWheelConfigurationValue'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'RearWheelDriveConfiguration'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/RearWheelDriveConfiguration'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'DriveWheelConfigurationValue'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 0a149873a..5a03ecacf 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 string $schemaTypeName = 'ReceiveAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ReceiveAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'TransferAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'ReceiveAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ReceiveAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'TransferAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 3e6cfef8e..116ad322f 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 string $schemaTypeName = 'Recipe'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Recipe'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Recipe'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Recipe'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'HowTo'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'HowTo'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 4a2bd6ea1..8ff25234b 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 string $schemaTypeName = 'Recommendation'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Recommendation'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Recommendation'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Recommendation'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Review'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Review'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 8bf42803a..ceffec827 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 string $schemaTypeName = 'RecommendedDoseSchedule'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/RecommendedDoseSchedule'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'DoseSchedule'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'RecommendedDoseSchedule'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/RecommendedDoseSchedule'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'DoseSchedule'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 82d72eed5..06b332271 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 string $schemaTypeName = 'Recruiting'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Recruiting'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalStudyStatus'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Recruiting'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Recruiting'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalStudyStatus'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 81177058d..0a78d7350 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 string $schemaTypeName = 'RecyclingCenter'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'RecyclingCenter'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/RecyclingCenter'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/RecyclingCenter'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'LocalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'LocalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A recycling center.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 edb81d52c..29319ccdd 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 string $schemaTypeName = 'ReducedRelevanceForChildrenConsideration'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ReducedRelevanceForChildrenConsideration'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'AdultOrientedEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'ReducedRelevanceForChildrenConsideration'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ReducedRelevanceForChildrenConsideration'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'AdultOrientedEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 8cfca88ee..e9c279cc8 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 string $schemaTypeName = 'RefundTypeEnumeration'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/RefundTypeEnumeration'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Enumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'RefundTypeEnumeration'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/RefundTypeEnumeration'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Enumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 206895f35..541a83651 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 string $schemaTypeName = 'RefurbishedCondition'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/RefurbishedCondition'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'OfferItemCondition'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'RefurbishedCondition'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/RefurbishedCondition'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'OfferItemCondition'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 149cb2b0f..33e371e43 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 string $schemaTypeName = 'RegisterAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/RegisterAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'InteractAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'RegisterAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/RegisterAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'InteractAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 2bc325288..aab633d34 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 string $schemaTypeName = 'Registry'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Registry'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalObservationalStudyDesign'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Registry'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Registry'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalObservationalStudyDesign'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 894232ee4..0530b61d2 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 string $schemaTypeName = 'ReimbursementCap'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ReimbursementCap'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'DrugCostCategory'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'ReimbursementCap'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ReimbursementCap'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'DrugCostCategory'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 9f898f046..a888112f4 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 string $schemaTypeName = 'RejectAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/RejectAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'AllocateAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'RejectAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/RejectAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'AllocateAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 e5a7834dc..caff37d72 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 string $schemaTypeName = 'RelatedTopicsHealthAspect'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/RelatedTopicsHealthAspect'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'HealthAspectEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'RelatedTopicsHealthAspect'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/RelatedTopicsHealthAspect'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'HealthAspectEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 cd59a3eb6..86fd4d579 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 string $schemaTypeName = 'RemixAlbum'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/RemixAlbum'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MusicAlbumProductionType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'RemixAlbum'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/RemixAlbum'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MusicAlbumProductionType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 2acdccae4..cf5723877 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 string $schemaTypeName = 'Renal'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Renal'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalSpecialty'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Renal'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Renal'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalSpecialty'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 f9fbde573..3c5a1fa66 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 string $schemaTypeName = 'RentAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/RentAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'TradeAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'RentAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/RentAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'TradeAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 4e80d744c..e34c4c16f 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 string $schemaTypeName = 'RentalCarReservation'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/RentalCarReservation'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Reservation'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'RentalCarReservation'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/RentalCarReservation'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Reservation'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 1b22e73e6..52528c421 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 string $schemaTypeName = 'RentalVehicleUsage'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/RentalVehicleUsage'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CarUsageType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'RentalVehicleUsage'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/RentalVehicleUsage'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CarUsageType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 b5720a681..ad0a46213 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 string $schemaTypeName = 'RepaymentSpecification'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/RepaymentSpecification'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'StructuredValue'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'RepaymentSpecification'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/RepaymentSpecification'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'StructuredValue'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 911aa8014..e77785797 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 string $schemaTypeName = 'ReplaceAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ReplaceAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'UpdateAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'ReplaceAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ReplaceAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'UpdateAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 b4f92730a..ba9ccb2fe 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 string $schemaTypeName = 'ReplyAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ReplyAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CommunicateAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'ReplyAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ReplyAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CommunicateAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 2346e792f..352ef937f 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 string $schemaTypeName = 'Report'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Report'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Report'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Report'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Article'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Article'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A Report generated by governmental or non-governmental organization.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 439e3cf16..ddc654b66 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 string $schemaTypeName = 'ReportageNewsArticle'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'ReportageNewsArticle'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ReportageNewsArticle'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ReportageNewsArticle'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'NewsArticle'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'NewsArticle'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 7f583f1c4..07a8a7801 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 string $schemaTypeName = 'ReportedDoseSchedule'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ReportedDoseSchedule'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'DoseSchedule'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'ReportedDoseSchedule'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ReportedDoseSchedule'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'DoseSchedule'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 1510874fb..b1026b24e 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 string $schemaTypeName = 'ResearchOrganization'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'ResearchOrganization'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ResearchOrganization'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ResearchOrganization'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Organization'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Organization'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A Research Organization (e.g. scientific institute, research company).'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 e46d72fd4..c073d7a93 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 string $schemaTypeName = 'ResearchProject'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'ResearchProject'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ResearchProject'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ResearchProject'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Project'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Project'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A Research project.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 6c99ebc33..caf7b765e 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 string $schemaTypeName = 'Researcher'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Researcher'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Audience'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Researcher'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Researcher'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Audience'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 e719a00d2..017a45f5e 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 string $schemaTypeName = 'Reservation'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Reservation'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Reservation'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Reservation'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 56904329d..09ce7e86c 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 string $schemaTypeName = 'ReservationCancelled'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ReservationCancelled'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'ReservationStatusType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'ReservationCancelled'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ReservationCancelled'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'ReservationStatusType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 cd2a467ce..d16b663b2 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 string $schemaTypeName = 'ReservationConfirmed'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ReservationConfirmed'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'ReservationStatusType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'ReservationConfirmed'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ReservationConfirmed'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'ReservationStatusType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 ce9c839aa..9134e3e2d 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 string $schemaTypeName = 'ReservationHold'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ReservationHold'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'ReservationStatusType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'ReservationHold'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ReservationHold'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'ReservationStatusType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 0b434feaf..6cea16921 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 string $schemaTypeName = 'ReservationPackage'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ReservationPackage'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Reservation'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'ReservationPackage'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ReservationPackage'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Reservation'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 015aee81b..0460a5e10 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 string $schemaTypeName = 'ReservationPending'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ReservationPending'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'ReservationStatusType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'ReservationPending'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ReservationPending'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'ReservationStatusType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 f24e1662d..15b0b3338 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 string $schemaTypeName = 'ReservationStatusType'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ReservationStatusType'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'StatusEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'ReservationStatusType'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ReservationStatusType'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'StatusEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 e844cd142..318276403 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 string $schemaTypeName = 'ReserveAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ReserveAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'PlanAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'ReserveAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ReserveAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'PlanAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 aa215dc80..2cea3dbf2 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 string $schemaTypeName = 'Reservoir'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Reservoir'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'BodyOfWater'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Reservoir'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Reservoir'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'BodyOfWater'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 ccd100741..03b4fd8ca 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 string $schemaTypeName = 'Residence'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Residence'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Place'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Residence'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Residence'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Place'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 c4b203278..f14230e3d 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 string $schemaTypeName = 'Resort'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Resort'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Resort'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Resort'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'LodgingBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'LodgingBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 0af9adb23..1d53baad5 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 string $schemaTypeName = 'RespiratoryTherapy'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/RespiratoryTherapy'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalTherapy'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'RespiratoryTherapy'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/RespiratoryTherapy'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalTherapy'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 1d915cd6b..adab2080b 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 string $schemaTypeName = 'Restaurant'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Restaurant'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Restaurant'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Restaurant'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'FoodEstablishment'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'FoodEstablishment'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A restaurant.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 ae00c984b..7c18ec6ef 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 string $schemaTypeName = 'RestockingFees'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/RestockingFees'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'ReturnFeesEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'RestockingFees'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/RestockingFees'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'ReturnFeesEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 aa467f7de..c96b55dcf 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 string $schemaTypeName = 'RestrictedDiet'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/RestrictedDiet'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Enumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'RestrictedDiet'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/RestrictedDiet'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Enumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 a2b9f30d3..9bfe0159c 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 string $schemaTypeName = 'ResultsAvailable'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ResultsAvailable'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalStudyStatus'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'ResultsAvailable'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ResultsAvailable'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalStudyStatus'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 d108eb0b4..2e15542d7 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 string $schemaTypeName = 'ResultsNotAvailable'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ResultsNotAvailable'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalStudyStatus'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'ResultsNotAvailable'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ResultsNotAvailable'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalStudyStatus'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 2a583d292..cbeb0e0d7 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 string $schemaTypeName = 'ResumeAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ResumeAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'ControlAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'ResumeAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ResumeAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'ControlAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 3e014b73c..9d55d1401 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 string $schemaTypeName = 'Retail'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Retail'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'DrugCostCategory'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Retail'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Retail'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'DrugCostCategory'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 7e1f1b8be..8c6d762e9 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 string $schemaTypeName = 'ReturnAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ReturnAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'TransferAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'ReturnAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ReturnAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'TransferAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 f77e39a84..6ea2ddade 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 string $schemaTypeName = 'ReturnAtKiosk'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ReturnAtKiosk'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'ReturnMethodEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'ReturnAtKiosk'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ReturnAtKiosk'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'ReturnMethodEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 19a76ad35..4b870fa2b 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 string $schemaTypeName = 'ReturnByMail'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ReturnByMail'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'ReturnMethodEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'ReturnByMail'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ReturnByMail'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'ReturnMethodEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 02588b455..4920d9f29 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 string $schemaTypeName = 'ReturnFeesCustomerResponsibility'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ReturnFeesCustomerResponsibility'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'ReturnFeesEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'ReturnFeesCustomerResponsibility'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ReturnFeesCustomerResponsibility'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'ReturnFeesEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 8fdc46f19..09c6cb6a9 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 string $schemaTypeName = 'ReturnFeesEnumeration'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ReturnFeesEnumeration'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Enumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'ReturnFeesEnumeration'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ReturnFeesEnumeration'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Enumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 22f3d29ee..37291d27f 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 string $schemaTypeName = 'ReturnInStore'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ReturnInStore'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'ReturnMethodEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'ReturnInStore'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ReturnInStore'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'ReturnMethodEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 bd78d0f47..e684e841d 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 string $schemaTypeName = 'ReturnLabelCustomerResponsibility'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ReturnLabelCustomerResponsibility'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'ReturnLabelSourceEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'ReturnLabelCustomerResponsibility'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ReturnLabelCustomerResponsibility'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'ReturnLabelSourceEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 21daef8b0..5b4ecbbd0 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 string $schemaTypeName = 'ReturnLabelDownloadAndPrint'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ReturnLabelDownloadAndPrint'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'ReturnLabelSourceEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'ReturnLabelDownloadAndPrint'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ReturnLabelDownloadAndPrint'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'ReturnLabelSourceEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 277db84ac..4290018c2 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 string $schemaTypeName = 'ReturnLabelInBox'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ReturnLabelInBox'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'ReturnLabelSourceEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'ReturnLabelInBox'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ReturnLabelInBox'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'ReturnLabelSourceEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 91bdc5d11..bdca888bd 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 string $schemaTypeName = 'ReturnLabelSourceEnumeration'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ReturnLabelSourceEnumeration'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Enumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'ReturnLabelSourceEnumeration'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ReturnLabelSourceEnumeration'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Enumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 cb2ef687c..8e3275ac0 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 string $schemaTypeName = 'ReturnMethodEnumeration'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ReturnMethodEnumeration'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Enumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'ReturnMethodEnumeration'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ReturnMethodEnumeration'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Enumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 22780b7a9..bed2c74a8 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 string $schemaTypeName = 'ReturnShippingFees'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ReturnShippingFees'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'ReturnFeesEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'ReturnShippingFees'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ReturnShippingFees'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'ReturnFeesEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 375cfed07..bfc067913 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 string $schemaTypeName = 'Review'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Review'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Review'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Review'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A review of an item - for example, of a restaurant, movie, or store.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 c06c37941..444b12643 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 string $schemaTypeName = 'ReviewAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ReviewAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'AssessAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'ReviewAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ReviewAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'AssessAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 6471fc3ef..f6fa04aaa 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 string $schemaTypeName = 'ReviewNewsArticle'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'ReviewNewsArticle'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ReviewNewsArticle'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ReviewNewsArticle'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'NewsArticle'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'NewsArticle'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 1e6363696..b8f4f7035 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 string $schemaTypeName = 'Rheumatologic'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Rheumatologic'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalSpecialty'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Rheumatologic'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Rheumatologic'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalSpecialty'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 05f6c2fd3..c14de1c45 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 string $schemaTypeName = 'RightHandDriving'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/RightHandDriving'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'SteeringPositionValue'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'RightHandDriving'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/RightHandDriving'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'SteeringPositionValue'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 746ad80f4..eaaff1a77 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 string $schemaTypeName = 'RisksOrComplicationsHealthAspect'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/RisksOrComplicationsHealthAspect'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'HealthAspectEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'RisksOrComplicationsHealthAspect'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/RisksOrComplicationsHealthAspect'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'HealthAspectEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 8bd6e4cf4..d59d588c9 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 string $schemaTypeName = 'RiverBodyOfWater'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/RiverBodyOfWater'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'BodyOfWater'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'RiverBodyOfWater'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/RiverBodyOfWater'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'BodyOfWater'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 bef57d962..887039d85 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 string $schemaTypeName = 'Role'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Role'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Role'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Role'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 937a70057..efc218c00 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 string $schemaTypeName = 'RoofingContractor'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'RoofingContractor'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/RoofingContractor'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/RoofingContractor'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'HomeAndConstructionBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'HomeAndConstructionBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A roofing contractor.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 82418ab62..f45e7ce58 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 string $schemaTypeName = 'Room'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Room'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Room'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Room'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Accommodation'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Accommodation'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 107257444..8bb164100 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 string $schemaTypeName = 'RsvpAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/RsvpAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'InformAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'RsvpAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/RsvpAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'InformAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 1fbd6a8a4..f9c9b126a 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 string $schemaTypeName = 'RsvpResponseMaybe'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/RsvpResponseMaybe'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'RsvpResponseType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'RsvpResponseMaybe'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/RsvpResponseMaybe'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'RsvpResponseType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 2b22f43e6..2a42494ec 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 string $schemaTypeName = 'RsvpResponseNo'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/RsvpResponseNo'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'RsvpResponseType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'RsvpResponseNo'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/RsvpResponseNo'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'RsvpResponseType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 0f2eae4e4..84af18db7 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 string $schemaTypeName = 'RsvpResponseType'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/RsvpResponseType'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Enumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'RsvpResponseType'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/RsvpResponseType'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Enumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 d501cbdbe..b6097643f 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 string $schemaTypeName = 'RsvpResponseYes'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/RsvpResponseYes'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'RsvpResponseType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'RsvpResponseYes'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/RsvpResponseYes'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'RsvpResponseType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 451fbb7a1..963db2630 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 string $schemaTypeName = 'SRP'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/SRP'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'PriceTypeEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'SRP'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/SRP'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'PriceTypeEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 4e1036481..259986d76 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 string $schemaTypeName = 'SafetyHealthAspect'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/SafetyHealthAspect'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'HealthAspectEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'SafetyHealthAspect'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/SafetyHealthAspect'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'HealthAspectEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 f92ab0f66..6cb50376e 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 string $schemaTypeName = 'SaleEvent'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/SaleEvent'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Event'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'SaleEvent'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/SaleEvent'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Event'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 a47726cb6..613dfd0f1 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 string $schemaTypeName = 'SalePrice'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/SalePrice'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'PriceTypeEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'SalePrice'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/SalePrice'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'PriceTypeEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 83ef4fc16..062a02028 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 string $schemaTypeName = 'SatireOrParodyContent'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/SatireOrParodyContent'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MediaManipulationRatingEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'SatireOrParodyContent'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/SatireOrParodyContent'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MediaManipulationRatingEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 9eebf7f50..78353689d 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 string $schemaTypeName = 'SatiricalArticle'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'SatiricalArticle'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/SatiricalArticle'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/SatiricalArticle'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Article'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Article'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 d80c5ce7b..32e8d37e7 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 string $schemaTypeName = 'Saturday'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Saturday'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'DayOfWeek'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Saturday'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Saturday'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'DayOfWeek'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 604b2163d..6fb980cda 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 string $schemaTypeName = 'Schedule'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Schedule'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Schedule'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Schedule'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 f5b475c3b..7b62dd7d7 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 string $schemaTypeName = 'ScheduleAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ScheduleAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'PlanAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'ScheduleAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ScheduleAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'PlanAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 b9557efc3..17b5559f3 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 string $schemaTypeName = '3DModel'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = '3DModel'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/3DModel'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/3DModel'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MediaObject'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MediaObject'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 d163730d6..22bb98ae4 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 string $schemaTypeName = 'Class'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Class'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Class'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Class'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 9906634ec..989f05889 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 string $schemaTypeName = 'False'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/False'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Boolean'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'False'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/False'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Boolean'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 300442821..f8b81ef9c 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 string $schemaTypeName = 'Float'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Float'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Number'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Float'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Float'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Number'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 e89694dac..05de468d0 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 string $schemaTypeName = 'True'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/True'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Boolean'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'True'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/True'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Boolean'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 9b527b790..e22f42a5c 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 string $schemaTypeName = 'ScholarlyArticle'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'ScholarlyArticle'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ScholarlyArticle'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ScholarlyArticle'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Article'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Article'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A scholarly article.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 0a3a328b8..c9bc6aaca 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 string $schemaTypeName = 'School'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'School'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/School'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/School'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'EducationalOrganization'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'EducationalOrganization'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A school.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 5848d8759..2fa89d520 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 string $schemaTypeName = 'SchoolDistrict'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/SchoolDistrict'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'AdministrativeArea'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'SchoolDistrict'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/SchoolDistrict'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'AdministrativeArea'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 a845ae632..df124c72f 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 string $schemaTypeName = 'ScreeningEvent'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ScreeningEvent'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Event'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'ScreeningEvent'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ScreeningEvent'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Event'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 019af27a0..dc1f6a8d6 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 string $schemaTypeName = 'ScreeningHealthAspect'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ScreeningHealthAspect'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'HealthAspectEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'ScreeningHealthAspect'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ScreeningHealthAspect'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'HealthAspectEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 34c895e5c..f61619a2b 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 string $schemaTypeName = 'Sculpture'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Sculpture'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Sculpture'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Sculpture'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A piece of sculpture.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 58de320a9..5006256c7 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 string $schemaTypeName = 'SeaBodyOfWater'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/SeaBodyOfWater'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'BodyOfWater'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'SeaBodyOfWater'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/SeaBodyOfWater'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'BodyOfWater'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 f32dcc5ce..b25c4a52b 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 string $schemaTypeName = 'SearchAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/SearchAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Action'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'SearchAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/SearchAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Action'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 87d981e87..440d653b6 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 string $schemaTypeName = 'SearchRescueOrganization'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'SearchRescueOrganization'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/SearchRescueOrganization'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/SearchRescueOrganization'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Organization'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Organization'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A Search and Rescue organization of some kind.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 35616b799..d48a6ddbc 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 string $schemaTypeName = 'SearchResultsPage'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'SearchResultsPage'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/SearchResultsPage'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/SearchResultsPage'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'WebPage'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'WebPage'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'Web page type: Search results page.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 739266430..342759af4 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 string $schemaTypeName = 'Season'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Season'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Season'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Season'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A media season, e.g. TV, radio, video game etc.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 8f36811b5..eeebaa54b 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 string $schemaTypeName = 'Seat'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Seat'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Seat'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Seat'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 4423d061c..dea49903d 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 string $schemaTypeName = 'SeatingMap'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/SeatingMap'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MapCategoryType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'SeatingMap'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/SeatingMap'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MapCategoryType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 eb7fb7548..916f81ac4 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 string $schemaTypeName = 'SeeDoctorHealthAspect'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/SeeDoctorHealthAspect'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'HealthAspectEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'SeeDoctorHealthAspect'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/SeeDoctorHealthAspect'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'HealthAspectEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 263d05796..23b086577 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 string $schemaTypeName = 'SeekToAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/SeekToAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Action'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'SeekToAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/SeekToAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Action'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 864fa503a..f51d7526e 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 string $schemaTypeName = 'SelfCareHealthAspect'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/SelfCareHealthAspect'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'HealthAspectEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'SelfCareHealthAspect'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/SelfCareHealthAspect'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'HealthAspectEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 49130f3fb..2f4d68334 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 string $schemaTypeName = 'SelfStorage'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'SelfStorage'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/SelfStorage'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/SelfStorage'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'LocalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'LocalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A self-storage facility.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 393fdd4b7..86f5739c2 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 string $schemaTypeName = 'SellAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/SellAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'TradeAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'SellAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/SellAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'TradeAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 435603537..50902a0ca 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 string $schemaTypeName = 'SendAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/SendAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'TransferAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'SendAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/SendAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'TransferAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 6508edf8c..512f7dca5 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 string $schemaTypeName = 'Series'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Series'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Series'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Series'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 d3af6fc6b..107f43160 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 string $schemaTypeName = 'Service'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Service'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Service'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Service'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 863ea0a67..2641cd517 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 string $schemaTypeName = 'ServiceChannel'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ServiceChannel'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'ServiceChannel'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ServiceChannel'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 1480a26a7..d6291d582 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 string $schemaTypeName = 'SexualContentConsideration'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/SexualContentConsideration'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'AdultOrientedEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'SexualContentConsideration'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/SexualContentConsideration'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'AdultOrientedEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 93b9ececb..f4606f970 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 string $schemaTypeName = 'ShareAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ShareAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CommunicateAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'ShareAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ShareAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CommunicateAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 43fd6bef2..27dd16442 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 string $schemaTypeName = 'SheetMusic'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'SheetMusic'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/SheetMusic'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/SheetMusic'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'Printed music, as opposed to performed or recorded music.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 e9bf2cddf..fef20e000 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 string $schemaTypeName = 'ShippingDeliveryTime'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ShippingDeliveryTime'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'StructuredValue'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'ShippingDeliveryTime'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ShippingDeliveryTime'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'StructuredValue'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 cca667ec2..9643c5b63 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 string $schemaTypeName = 'ShippingRateSettings'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ShippingRateSettings'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'StructuredValue'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'ShippingRateSettings'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ShippingRateSettings'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'StructuredValue'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 f54c77915..2194d5659 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 string $schemaTypeName = 'ShoeStore'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'ShoeStore'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ShoeStore'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ShoeStore'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Store'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Store'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A shoe store.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 5de862ba4..0fca80747 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 string $schemaTypeName = 'ShoppingCenter'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'ShoppingCenter'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ShoppingCenter'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ShoppingCenter'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'LocalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'LocalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A shopping center or mall.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 c7698e791..972370c07 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 string $schemaTypeName = 'ShortStory'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'ShortStory'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ShortStory'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ShortStory'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'Short story or tale. A brief work of literature, usually written in narrative prose.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 779ece327..a2cdf846c 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 string $schemaTypeName = 'SideEffectsHealthAspect'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/SideEffectsHealthAspect'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'HealthAspectEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'SideEffectsHealthAspect'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/SideEffectsHealthAspect'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'HealthAspectEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 2ad5ad4fa..489f67163 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 string $schemaTypeName = 'SingleBlindedTrial'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/SingleBlindedTrial'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalTrialDesign'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'SingleBlindedTrial'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/SingleBlindedTrial'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalTrialDesign'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 14d28279f..e8cf46c94 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 string $schemaTypeName = 'SingleCenterTrial'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/SingleCenterTrial'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalTrialDesign'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'SingleCenterTrial'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/SingleCenterTrial'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalTrialDesign'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 d5e7645ee..990e77af1 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 string $schemaTypeName = 'SingleFamilyResidence'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'SingleFamilyResidence'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/SingleFamilyResidence'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/SingleFamilyResidence'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'House'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'House'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'Residence type: Single-family home.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 7b9ee5e05..c6f3eeb8d 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 string $schemaTypeName = 'SinglePlayer'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/SinglePlayer'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'GamePlayMode'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'SinglePlayer'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/SinglePlayer'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'GamePlayMode'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 ee55b1f78..f45a16bac 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 string $schemaTypeName = 'SingleRelease'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/SingleRelease'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MusicAlbumReleaseType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'SingleRelease'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/SingleRelease'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MusicAlbumReleaseType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 776cc11a1..9cc75ed18 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 string $schemaTypeName = 'SiteNavigationElement'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'SiteNavigationElement'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/SiteNavigationElement'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/SiteNavigationElement'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'WebPageElement'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'WebPageElement'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A navigation element of the page.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 06fcb887d..4c4e17743 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 string $schemaTypeName = 'SizeGroupEnumeration'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/SizeGroupEnumeration'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Enumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'SizeGroupEnumeration'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/SizeGroupEnumeration'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Enumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 5b04ba1cf..d5673965f 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 string $schemaTypeName = 'SizeSpecification'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/SizeSpecification'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'QualitativeValue'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'SizeSpecification'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/SizeSpecification'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'QualitativeValue'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 8433f1b46..15d378751 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 string $schemaTypeName = 'SizeSystemEnumeration'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/SizeSystemEnumeration'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Enumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'SizeSystemEnumeration'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/SizeSystemEnumeration'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Enumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 6980e9767..290c6684d 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 string $schemaTypeName = 'SizeSystemImperial'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/SizeSystemImperial'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'SizeSystemEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'SizeSystemImperial'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/SizeSystemImperial'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'SizeSystemEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 c957e6df5..1f75855da 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 string $schemaTypeName = 'SizeSystemMetric'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/SizeSystemMetric'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'SizeSystemEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'SizeSystemMetric'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/SizeSystemMetric'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'SizeSystemEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 78014a873..710b2f9dd 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 string $schemaTypeName = 'SkiResort'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'SkiResort'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/SkiResort'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/SkiResort'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'SportsActivityLocation'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'SportsActivityLocation'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A ski resort.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 ff95c7172..72affa136 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 string $schemaTypeName = 'Skin'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Skin'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'PhysicalExam'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Skin'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Skin'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'PhysicalExam'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 ce44e7b2e..6f8d59a59 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 string $schemaTypeName = 'SocialEvent'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/SocialEvent'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Event'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'SocialEvent'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/SocialEvent'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Event'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 f40539436..9f22f4701 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 string $schemaTypeName = 'SocialMediaPosting'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'SocialMediaPosting'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/SocialMediaPosting'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/SocialMediaPosting'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Article'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Article'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A post to a social media platform, including blog posts, tweets, Facebook posts, etc.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 9fa695e11..0e9b8a6ca 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 string $schemaTypeName = 'SoftwareApplication'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'SoftwareApplication'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/SoftwareApplication'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/SoftwareApplication'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A software application.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 b750fdcf8..7901eae38 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 string $schemaTypeName = 'SoftwareSourceCode'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'SoftwareSourceCode'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/SoftwareSourceCode'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/SoftwareSourceCode'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'Computer programming source code. Example: Full (compile ready) solutions, code snippet samples, scripts, templates.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 4a3102aff..8a0f2e42f 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 string $schemaTypeName = 'SoldOut'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/SoldOut'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'ItemAvailability'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'SoldOut'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/SoldOut'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'ItemAvailability'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 9e869606d..5e7b8d851 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 string $schemaTypeName = 'SolveMathAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/SolveMathAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Action'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'SolveMathAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/SolveMathAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Action'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 cf452ab8d..e21bcfe7d 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 string $schemaTypeName = 'SomeProducts'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'SomeProducts'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/SomeProducts'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/SomeProducts'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Product'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Product'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A placeholder for multiple similar products of the same kind.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 e9d752c5b..398460786 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 string $schemaTypeName = 'SoundtrackAlbum'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/SoundtrackAlbum'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MusicAlbumProductionType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'SoundtrackAlbum'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/SoundtrackAlbum'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MusicAlbumProductionType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 dde88ed37..cf2fcecb1 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 string $schemaTypeName = 'SpeakableSpecification'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/SpeakableSpecification'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'SpeakableSpecification'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/SpeakableSpecification'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 6085432b6..a323539fc 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 string $schemaTypeName = 'SpecialAnnouncement'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'SpecialAnnouncement'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/SpecialAnnouncement'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/SpecialAnnouncement'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 a7991d56d..a127dbafa 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 string $schemaTypeName = 'Specialty'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Specialty'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Enumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Specialty'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Specialty'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Enumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 6655c1ff3..db725c401 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 string $schemaTypeName = 'SpeechPathology'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/SpeechPathology'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalSpecialty'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'SpeechPathology'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/SpeechPathology'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalSpecialty'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 fa5622a71..23f70daf1 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 string $schemaTypeName = 'SpokenWordAlbum'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/SpokenWordAlbum'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MusicAlbumProductionType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'SpokenWordAlbum'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/SpokenWordAlbum'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MusicAlbumProductionType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 39d6b8664..9c6af1766 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 string $schemaTypeName = 'SportingGoodsStore'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'SportingGoodsStore'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/SportingGoodsStore'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/SportingGoodsStore'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Store'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Store'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A sporting goods store.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 d31ec15ac..6cced3d2d 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 string $schemaTypeName = 'SportsActivityLocation'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'SportsActivityLocation'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/SportsActivityLocation'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/SportsActivityLocation'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'LocalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'LocalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A sports location, such as a playing field.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 3d3043d86..1240ebbbe 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 string $schemaTypeName = 'SportsClub'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'SportsClub'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/SportsClub'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/SportsClub'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'SportsActivityLocation'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'SportsActivityLocation'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A sports club.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 65f9fadae..a3fb3c68a 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 string $schemaTypeName = 'SportsEvent'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/SportsEvent'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Event'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'SportsEvent'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/SportsEvent'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Event'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 302504b24..3743a2712 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 string $schemaTypeName = 'SportsOrganization'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'SportsOrganization'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/SportsOrganization'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/SportsOrganization'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Organization'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Organization'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 e8d5d9894..ae723a220 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 string $schemaTypeName = 'SportsTeam'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'SportsTeam'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/SportsTeam'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/SportsTeam'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'SportsOrganization'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'SportsOrganization'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'Organization: Sports team.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 998f31094..f30d0488f 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 string $schemaTypeName = 'SpreadsheetDigitalDocument'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'SpreadsheetDigitalDocument'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/SpreadsheetDigitalDocument'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/SpreadsheetDigitalDocument'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'DigitalDocument'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'DigitalDocument'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A spreadsheet file.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 026c36563..7c76cfd64 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 string $schemaTypeName = 'StadiumOrArena'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'StadiumOrArena'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/StadiumOrArena'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/StadiumOrArena'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'SportsActivityLocation'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'SportsActivityLocation'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A stadium.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 98947199f..67c4fab18 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 string $schemaTypeName = 'StagedContent'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/StagedContent'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MediaManipulationRatingEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'StagedContent'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/StagedContent'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MediaManipulationRatingEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 095829d3f..303aa0419 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 string $schemaTypeName = 'StagesHealthAspect'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/StagesHealthAspect'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'HealthAspectEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'StagesHealthAspect'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/StagesHealthAspect'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'HealthAspectEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 ef24a0bf6..0cec54367 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 string $schemaTypeName = 'State'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/State'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'AdministrativeArea'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'State'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/State'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'AdministrativeArea'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 e4c8fc821..5c26b8709 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 string $schemaTypeName = 'Statement'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Statement'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Statement'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Statement'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 8a15f0a7e..885ac6e57 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 string $schemaTypeName = 'StatisticalPopulation'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/StatisticalPopulation'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'StatisticalPopulation'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/StatisticalPopulation'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 71f717c1f..b23157301 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 string $schemaTypeName = 'StatusEnumeration'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/StatusEnumeration'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Enumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'StatusEnumeration'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/StatusEnumeration'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Enumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 b62eadec8..3a9694747 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 string $schemaTypeName = 'SteeringPositionValue'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/SteeringPositionValue'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'QualitativeValue'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'SteeringPositionValue'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/SteeringPositionValue'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'QualitativeValue'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 28d94175f..9f454c687 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 string $schemaTypeName = 'Store'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Store'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Store'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Store'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'LocalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'LocalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A retail good store.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 983023393..ab4c1dd60 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 string $schemaTypeName = 'StoreCreditRefund'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/StoreCreditRefund'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'RefundTypeEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'StoreCreditRefund'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/StoreCreditRefund'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'RefundTypeEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 52c7052b6..750e66ea1 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 string $schemaTypeName = 'StrengthTraining'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/StrengthTraining'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'PhysicalActivityCategory'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'StrengthTraining'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/StrengthTraining'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'PhysicalActivityCategory'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 a3d3ecd8d..b2781bc49 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 string $schemaTypeName = 'StructuredValue'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/StructuredValue'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'StructuredValue'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/StructuredValue'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 be87fa97f..e3134988e 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 string $schemaTypeName = 'StudioAlbum'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/StudioAlbum'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MusicAlbumProductionType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'StudioAlbum'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/StudioAlbum'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MusicAlbumProductionType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 f3083eedd..aaaeac94d 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 string $schemaTypeName = 'SubscribeAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/SubscribeAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'InteractAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'SubscribeAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/SubscribeAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'InteractAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 111c4c41f..ee96d8f90 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 string $schemaTypeName = 'Subscription'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Subscription'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'PriceComponentTypeEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Subscription'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Subscription'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'PriceComponentTypeEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 77d95a754..c29978eaa 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 string $schemaTypeName = 'Substance'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Substance'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalEntity'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Substance'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Substance'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalEntity'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 1c84504e5..a410ad6d0 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 string $schemaTypeName = 'SubwayStation'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/SubwayStation'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CivicStructure'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'SubwayStation'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/SubwayStation'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CivicStructure'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 404e8e353..18a0af951 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 string $schemaTypeName = 'Suite'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Suite'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Suite'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Suite'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Accommodation'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Accommodation'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 31bcdad81..c973899a9 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 string $schemaTypeName = 'Sunday'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Sunday'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'DayOfWeek'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Sunday'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Sunday'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'DayOfWeek'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 1b7b5298e..2d013d56b 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 string $schemaTypeName = 'SuperficialAnatomy'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/SuperficialAnatomy'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalEntity'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'SuperficialAnatomy'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/SuperficialAnatomy'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalEntity'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 8e52af79c..9422f9bd2 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 string $schemaTypeName = 'Surgical'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Surgical'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalSpecialty'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Surgical'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Surgical'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalSpecialty'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 9b17522c3..6cab1d32a 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 string $schemaTypeName = 'SurgicalProcedure'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/SurgicalProcedure'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalProcedure'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'SurgicalProcedure'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/SurgicalProcedure'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalProcedure'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 8d58c7777..b7e629952 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 string $schemaTypeName = 'SuspendAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/SuspendAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'ControlAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'SuspendAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/SuspendAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'ControlAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 699d7832c..4a9688427 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 string $schemaTypeName = 'Suspended'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Suspended'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalStudyStatus'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Suspended'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Suspended'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalStudyStatus'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 d68c1ddc6..8f0ad53b7 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 string $schemaTypeName = 'SymptomsHealthAspect'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/SymptomsHealthAspect'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'HealthAspectEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'SymptomsHealthAspect'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/SymptomsHealthAspect'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'HealthAspectEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 840a22ac7..cb524f809 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 string $schemaTypeName = 'Synagogue'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Synagogue'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'PlaceOfWorship'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Synagogue'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Synagogue'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'PlaceOfWorship'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 007072bdf..96636953e 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 string $schemaTypeName = 'TVClip'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'TVClip'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/TVClip'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/TVClip'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Clip'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Clip'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A short TV program or a segment/part of a TV program.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 73c216d5a..eded32da6 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 string $schemaTypeName = 'TVEpisode'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'TVEpisode'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/TVEpisode'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/TVEpisode'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Episode'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Episode'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A TV episode which can be part of a series or season.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 9eef1241e..517c1f3af 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 string $schemaTypeName = 'TVSeason'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'TVSeason'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/TVSeason'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/TVSeason'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CreativeWorkSeason'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CreativeWorkSeason'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'Season dedicated to TV broadcast and associated online delivery.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 6a16db980..f3b3c1859 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 string $schemaTypeName = 'TVSeries'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'TVSeries'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/TVSeries'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/TVSeries'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'CreativeWorkSeries dedicated to TV broadcast and associated online delivery.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 c7c7116e0..ac9eda05e 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 string $schemaTypeName = 'Table'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Table'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Table'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Table'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'WebPageElement'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'WebPageElement'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A table on a Web page.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 6a23c906e..e1cea0187 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 string $schemaTypeName = 'TakeAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/TakeAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'TransferAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'TakeAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/TakeAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'TransferAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 7517c9ecc..aff620de8 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 string $schemaTypeName = 'TattooParlor'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'TattooParlor'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/TattooParlor'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/TattooParlor'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'HealthAndBeautyBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'HealthAndBeautyBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A tattoo parlor.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 51a23fb75..64a8075a8 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 string $schemaTypeName = 'Taxi'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Taxi'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Service'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Taxi'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Taxi'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Service'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 2edae3308..39e68cf00 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 string $schemaTypeName = 'TaxiReservation'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/TaxiReservation'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Reservation'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'TaxiReservation'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/TaxiReservation'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Reservation'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 cfe391c21..0c5cbf27a 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 string $schemaTypeName = 'TaxiService'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/TaxiService'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Service'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'TaxiService'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/TaxiService'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Service'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 ae7dc1029..8048e720c 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 string $schemaTypeName = 'TaxiStand'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/TaxiStand'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CivicStructure'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'TaxiStand'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/TaxiStand'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CivicStructure'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 ffa710c26..ea84e5db4 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 string $schemaTypeName = 'TaxiVehicleUsage'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/TaxiVehicleUsage'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CarUsageType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'TaxiVehicleUsage'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/TaxiVehicleUsage'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CarUsageType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 70c5f24bc..4ff13997a 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 string $schemaTypeName = 'Taxon'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Taxon'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Thing'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Taxon'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Taxon'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Thing'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 44c6a72a5..da738f24e 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 string $schemaTypeName = 'TechArticle'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'TechArticle'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/TechArticle'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/TechArticle'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Article'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Article'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 599c3d2e8..86d51d663 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 string $schemaTypeName = 'TelevisionChannel'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/TelevisionChannel'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'BroadcastChannel'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'TelevisionChannel'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/TelevisionChannel'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'BroadcastChannel'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 c238bfbd3..6419cc114 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 string $schemaTypeName = 'TelevisionStation'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'TelevisionStation'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/TelevisionStation'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/TelevisionStation'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'LocalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'LocalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A television station.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 ea1ee42ad..cdfbecf83 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 string $schemaTypeName = 'TennisComplex'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'TennisComplex'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/TennisComplex'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/TennisComplex'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'SportsActivityLocation'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'SportsActivityLocation'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A tennis complex.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 634e97acd..a53f87c9c 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 string $schemaTypeName = 'Terminated'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Terminated'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalStudyStatus'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Terminated'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Terminated'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalStudyStatus'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 51271c4b1..3e1e3132c 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 string $schemaTypeName = 'Text'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Text'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Thing'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Text'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Text'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Thing'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 ade12bcd0..c7bedd9da 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 string $schemaTypeName = 'TextDigitalDocument'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'TextDigitalDocument'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/TextDigitalDocument'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/TextDigitalDocument'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'DigitalDocument'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'DigitalDocument'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A file composed primarily of text.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 973f1cd43..ecd796b78 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 string $schemaTypeName = 'TheaterEvent'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/TheaterEvent'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Event'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'TheaterEvent'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/TheaterEvent'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Event'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 1b911b3a6..c14a9e11a 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 string $schemaTypeName = 'TheaterGroup'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'TheaterGroup'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/TheaterGroup'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/TheaterGroup'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'PerformingGroup'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'PerformingGroup'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A theater group or company, for example, the Royal Shakespeare Company or Druid Theatre.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 78538c693..9545c8cd9 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 string $schemaTypeName = 'Therapeutic'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Therapeutic'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalDevicePurpose'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Therapeutic'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Therapeutic'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalDevicePurpose'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 137a0600d..1788ea034 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 string $schemaTypeName = 'TherapeuticProcedure'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/TherapeuticProcedure'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalProcedure'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'TherapeuticProcedure'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/TherapeuticProcedure'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalProcedure'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 82f0a90c8..113356247 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 string $schemaTypeName = 'Thesis'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Thesis'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Thesis'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Thesis'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 0a2d20420..ffbb2b009 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 string $schemaTypeName = 'Thing'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Thing'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Thing'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Thing'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Thing'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Thing'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 a629ec936..8c6150be7 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 string $schemaTypeName = 'Throat'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Throat'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'PhysicalExam'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Throat'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Throat'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'PhysicalExam'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 d3495edde..2c5361825 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 string $schemaTypeName = 'Thursday'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Thursday'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'DayOfWeek'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Thursday'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Thursday'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'DayOfWeek'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 2450318cd..5e769a21a 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 string $schemaTypeName = 'Ticket'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Ticket'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Ticket'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Ticket'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 c86329c4a..1fdf30897 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 string $schemaTypeName = 'TieAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/TieAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'AchieveAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'TieAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/TieAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'AchieveAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 761006139..e31fae058 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 string $schemaTypeName = 'Time'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Time'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Thing'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Time'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Time'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Thing'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 154d8888a..0125b6659 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 string $schemaTypeName = 'TipAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/TipAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'TradeAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'TipAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/TipAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'TradeAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 c097d5caa..042eaf649 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 string $schemaTypeName = 'TireShop'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'TireShop'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/TireShop'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/TireShop'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Store'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Store'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A tire shop.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 0b1b14ad2..c91e6b70f 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 string $schemaTypeName = 'TobaccoNicotineConsideration'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/TobaccoNicotineConsideration'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'AdultOrientedEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'TobaccoNicotineConsideration'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/TobaccoNicotineConsideration'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'AdultOrientedEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 3e0dc3019..ccee30be7 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 string $schemaTypeName = 'TollFree'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/TollFree'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'ContactPointOption'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'TollFree'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/TollFree'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'ContactPointOption'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 1c480522f..a1531c7f6 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 string $schemaTypeName = 'TouristAttraction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/TouristAttraction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Place'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'TouristAttraction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/TouristAttraction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Place'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 cc129d3ed..0c141a269 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 string $schemaTypeName = 'TouristDestination'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/TouristDestination'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Place'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'TouristDestination'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/TouristDestination'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Place'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 848b83fa8..7d67759b2 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 string $schemaTypeName = 'TouristInformationCenter'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'TouristInformationCenter'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/TouristInformationCenter'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/TouristInformationCenter'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'LocalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'LocalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A tourist information center.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 c4bc1a8bb..8b74c01da 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 string $schemaTypeName = 'TouristTrip'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/TouristTrip'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Trip'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'TouristTrip'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/TouristTrip'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Trip'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 c38d61085..c9ea31d97 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 string $schemaTypeName = 'Toxicologic'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Toxicologic'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalSpecialty'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Toxicologic'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Toxicologic'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalSpecialty'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 78839464f..dced165ce 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 string $schemaTypeName = 'ToyStore'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'ToyStore'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ToyStore'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ToyStore'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Store'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Store'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A toy store.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 d12002bbb..91ff448fa 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 string $schemaTypeName = 'TrackAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/TrackAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'FindAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'TrackAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/TrackAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'FindAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 8d31d1d9c..78f50583d 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 string $schemaTypeName = 'TradeAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/TradeAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Action'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'TradeAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/TradeAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Action'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 bef9cac50..145c045e5 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 string $schemaTypeName = 'TraditionalChinese'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/TraditionalChinese'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicineSystem'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'TraditionalChinese'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/TraditionalChinese'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicineSystem'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 cdd3368b8..84c802da4 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 string $schemaTypeName = 'TrainReservation'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/TrainReservation'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Reservation'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'TrainReservation'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/TrainReservation'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Reservation'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 44c33e388..262c1753b 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 string $schemaTypeName = 'TrainStation'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/TrainStation'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CivicStructure'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'TrainStation'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/TrainStation'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CivicStructure'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 205f33f9c..75048f94a 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 string $schemaTypeName = 'TrainTrip'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/TrainTrip'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Trip'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'TrainTrip'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/TrainTrip'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Trip'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 97ef090f2..db532f150 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 string $schemaTypeName = 'TransferAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/TransferAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Action'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'TransferAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/TransferAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Action'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 2192b42c0..1b7a146c5 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 string $schemaTypeName = 'TransformedContent'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/TransformedContent'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MediaManipulationRatingEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'TransformedContent'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/TransformedContent'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MediaManipulationRatingEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 64fd24553..5cebb995d 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 string $schemaTypeName = 'TransitMap'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/TransitMap'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MapCategoryType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'TransitMap'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/TransitMap'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MapCategoryType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 b966b8337..340b90944 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 string $schemaTypeName = 'TravelAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/TravelAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MoveAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'TravelAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/TravelAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MoveAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 c9d4114e2..ad6baaca0 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 string $schemaTypeName = 'TravelAgency'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'TravelAgency'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/TravelAgency'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/TravelAgency'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'LocalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'LocalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A travel agency.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 61e3975b7..aebb4ed7e 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 string $schemaTypeName = 'TreatmentIndication'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/TreatmentIndication'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalIndication'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'TreatmentIndication'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/TreatmentIndication'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalIndication'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 72a891523..a2606c1a1 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 string $schemaTypeName = 'TreatmentsHealthAspect'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/TreatmentsHealthAspect'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'HealthAspectEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'TreatmentsHealthAspect'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/TreatmentsHealthAspect'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'HealthAspectEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 9118b3b2c..5b1f6da01 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 string $schemaTypeName = 'Trip'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Trip'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Trip'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Trip'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 ca01314fc..f619e8070 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 string $schemaTypeName = 'TripleBlindedTrial'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/TripleBlindedTrial'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalTrialDesign'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'TripleBlindedTrial'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/TripleBlindedTrial'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalTrialDesign'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 7d5efb23d..022776589 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 string $schemaTypeName = 'Tuesday'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Tuesday'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'DayOfWeek'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Tuesday'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Tuesday'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'DayOfWeek'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 7637f2370..a9d476021 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 string $schemaTypeName = 'TypeAndQuantityNode'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/TypeAndQuantityNode'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'StructuredValue'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'TypeAndQuantityNode'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/TypeAndQuantityNode'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'StructuredValue'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 cd0cd4478..92812f5c5 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 string $schemaTypeName = 'TypesHealthAspect'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/TypesHealthAspect'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'HealthAspectEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'TypesHealthAspect'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/TypesHealthAspect'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'HealthAspectEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 0ffa5a5db..be401688b 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 string $schemaTypeName = 'UKNonprofitType'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/UKNonprofitType'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'NonprofitType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'UKNonprofitType'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/UKNonprofitType'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'NonprofitType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 eb7b18874..45c11033d 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 string $schemaTypeName = 'UKTrust'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/UKTrust'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'UKNonprofitType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'UKTrust'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/UKTrust'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'UKNonprofitType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 46c18b0c9..9ce3e3265 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 string $schemaTypeName = 'URL'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/URL'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Text'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'URL'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/URL'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Text'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 41957f78b..dd184ff28 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 string $schemaTypeName = 'USNonprofitType'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/USNonprofitType'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'NonprofitType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'USNonprofitType'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/USNonprofitType'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'NonprofitType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 9c8aefeae..93c3bac7f 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 string $schemaTypeName = 'Ultrasound'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Ultrasound'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalImagingTechnique'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Ultrasound'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Ultrasound'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalImagingTechnique'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 8f184c549..e38a8ce49 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 string $schemaTypeName = 'UnRegisterAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/UnRegisterAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'InteractAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'UnRegisterAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/UnRegisterAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'InteractAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 e2e41e6e3..ec9e3d65a 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 string $schemaTypeName = 'UnclassifiedAdultConsideration'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/UnclassifiedAdultConsideration'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'AdultOrientedEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'UnclassifiedAdultConsideration'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/UnclassifiedAdultConsideration'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'AdultOrientedEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 51ed674ef..2b8baa3a8 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 string $schemaTypeName = 'UnemploymentSupport'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/UnemploymentSupport'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'GovernmentBenefitsType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'UnemploymentSupport'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/UnemploymentSupport'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'GovernmentBenefitsType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 f3b95ce43..f46ea0ed8 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 string $schemaTypeName = 'UnincorporatedAssociationCharity'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/UnincorporatedAssociationCharity'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'UKNonprofitType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'UnincorporatedAssociationCharity'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/UnincorporatedAssociationCharity'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'UKNonprofitType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 48f21692b..236560c93 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 string $schemaTypeName = 'UnitPriceSpecification'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/UnitPriceSpecification'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'PriceSpecification'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'UnitPriceSpecification'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/UnitPriceSpecification'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'PriceSpecification'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 952768ca7..e7ebd3be9 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 string $schemaTypeName = 'UnofficialLegalValue'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/UnofficialLegalValue'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'LegalValueLevel'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'UnofficialLegalValue'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/UnofficialLegalValue'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'LegalValueLevel'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 5d03307cb..4faac5efe 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 string $schemaTypeName = 'UpdateAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/UpdateAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Action'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'UpdateAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/UpdateAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Action'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 4d682794a..4863252ab 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 string $schemaTypeName = 'Urologic'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Urologic'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalSpecialty'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Urologic'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Urologic'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalSpecialty'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 916002bfe..6036cdcb2 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 string $schemaTypeName = 'UsageOrScheduleHealthAspect'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/UsageOrScheduleHealthAspect'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'HealthAspectEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'UsageOrScheduleHealthAspect'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/UsageOrScheduleHealthAspect'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'HealthAspectEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 b50d2c507..d2be5517f 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 string $schemaTypeName = 'UseAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/UseAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'ConsumeAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'UseAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/UseAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'ConsumeAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 3ef894c94..022f141e5 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 string $schemaTypeName = 'UsedCondition'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/UsedCondition'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'OfferItemCondition'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'UsedCondition'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/UsedCondition'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'OfferItemCondition'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 916525fc7..ca0518ac1 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 string $schemaTypeName = 'UserBlocks'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/UserBlocks'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'UserInteraction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'UserBlocks'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/UserBlocks'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'UserInteraction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 4551e0ee0..987316652 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 string $schemaTypeName = 'UserCheckins'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/UserCheckins'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'UserInteraction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'UserCheckins'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/UserCheckins'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'UserInteraction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 4b66e2f22..8883a6a85 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 string $schemaTypeName = 'UserComments'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/UserComments'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'UserInteraction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'UserComments'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/UserComments'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'UserInteraction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 3d8fdf747..40a368b76 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 string $schemaTypeName = 'UserDownloads'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/UserDownloads'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'UserInteraction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'UserDownloads'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/UserDownloads'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'UserInteraction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 9c4157962..9644dba62 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 string $schemaTypeName = 'UserInteraction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/UserInteraction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Event'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'UserInteraction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/UserInteraction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Event'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 fa722bf62..7251683cd 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 string $schemaTypeName = 'UserLikes'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/UserLikes'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'UserInteraction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'UserLikes'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/UserLikes'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'UserInteraction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 fb223b0cb..8cb12e6e0 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 string $schemaTypeName = 'UserPageVisits'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/UserPageVisits'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'UserInteraction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'UserPageVisits'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/UserPageVisits'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'UserInteraction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 addf5d3a1..9c60c39e5 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 string $schemaTypeName = 'UserPlays'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/UserPlays'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'UserInteraction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'UserPlays'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/UserPlays'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'UserInteraction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 20f3fe1ef..e664dfcd0 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 string $schemaTypeName = 'UserPlusOnes'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/UserPlusOnes'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'UserInteraction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'UserPlusOnes'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/UserPlusOnes'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'UserInteraction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 d6173413c..f52957038 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 string $schemaTypeName = 'UserReview'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'UserReview'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/UserReview'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/UserReview'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Review'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Review'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 39781ad77..6b8360064 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 string $schemaTypeName = 'UserTweets'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/UserTweets'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'UserInteraction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'UserTweets'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/UserTweets'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'UserInteraction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 598a4cb1c..19f319827 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 string $schemaTypeName = 'VeganDiet'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/VeganDiet'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'RestrictedDiet'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'VeganDiet'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/VeganDiet'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'RestrictedDiet'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 750faeaf7..b2cb2c773 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 string $schemaTypeName = 'VegetarianDiet'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/VegetarianDiet'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'RestrictedDiet'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'VegetarianDiet'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/VegetarianDiet'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'RestrictedDiet'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 6aabb93ae..65cf8dd6e 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 string $schemaTypeName = 'Vehicle'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Vehicle'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Vehicle'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Vehicle'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Product'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Product'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 6b91074e2..569e6ab81 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 string $schemaTypeName = 'Vein'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Vein'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Vessel'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Vein'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Vein'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Vessel'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 e1f353933..e230a3de4 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 string $schemaTypeName = 'VenueMap'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/VenueMap'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MapCategoryType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'VenueMap'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/VenueMap'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MapCategoryType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 2f3ae5b7d..544b13314 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 string $schemaTypeName = 'Vessel'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Vessel'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'AnatomicalStructure'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Vessel'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Vessel'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'AnatomicalStructure'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 b34005249..06727f311 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 string $schemaTypeName = 'VeterinaryCare'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'VeterinaryCare'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/VeterinaryCare'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/VeterinaryCare'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalOrganization'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalOrganization'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A vet\'s office.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 4f4500edd..ec43d5002 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 string $schemaTypeName = 'VideoGallery'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'VideoGallery'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/VideoGallery'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/VideoGallery'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MediaGallery'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MediaGallery'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'Web page type: Video gallery page.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 a7ee9e955..25916db8c 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 string $schemaTypeName = 'VideoGame'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'VideoGame'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/VideoGame'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/VideoGame'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'SoftwareApplication'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'SoftwareApplication'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 b2e69e79d..f43445ef5 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 string $schemaTypeName = 'VideoGameClip'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'VideoGameClip'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/VideoGameClip'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/VideoGameClip'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Clip'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Clip'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A short segment/part of a video game.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 e3e952cb9..b01e7836e 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 string $schemaTypeName = 'VideoGameSeries'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'VideoGameSeries'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/VideoGameSeries'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/VideoGameSeries'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CreativeWorkSeries'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CreativeWorkSeries'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A video game series.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 9844aaa64..6f777e0a4 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 string $schemaTypeName = 'VideoObject'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'VideoObject'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/VideoObject'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/VideoObject'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MediaObject'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MediaObject'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A video file.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 4de8094d5..a41df69d6 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 string $schemaTypeName = 'VideoObjectSnapshot'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'VideoObjectSnapshot'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/VideoObjectSnapshot'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/VideoObjectSnapshot'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'VideoObject'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'VideoObject'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 939bb8c01..e291b6271 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 string $schemaTypeName = 'ViewAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ViewAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'ConsumeAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'ViewAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ViewAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'ConsumeAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 8ae0f5284..db3d57dd5 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 string $schemaTypeName = 'VinylFormat'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/VinylFormat'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MusicReleaseFormatType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'VinylFormat'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/VinylFormat'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MusicReleaseFormatType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 6903e5e47..c7731c7fc 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 string $schemaTypeName = 'ViolenceConsideration'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ViolenceConsideration'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'AdultOrientedEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'ViolenceConsideration'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ViolenceConsideration'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'AdultOrientedEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 f73238d39..35d356409 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 string $schemaTypeName = 'VirtualLocation'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/VirtualLocation'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'VirtualLocation'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/VirtualLocation'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 7829caca1..d31b6a691 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 string $schemaTypeName = 'Virus'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Virus'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'InfectiousAgentClass'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Virus'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Virus'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'InfectiousAgentClass'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 5cfb2cac8..895797667 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 string $schemaTypeName = 'VisualArtsEvent'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/VisualArtsEvent'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Event'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'VisualArtsEvent'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/VisualArtsEvent'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Event'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 415e7e8d7..269687449 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 string $schemaTypeName = 'VisualArtwork'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'VisualArtwork'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/VisualArtwork'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/VisualArtwork'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A work of art that is primarily visual in character.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 3685fe131..cebf5ecec 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 string $schemaTypeName = 'VitalSign'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/VitalSign'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalSign'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'VitalSign'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/VitalSign'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalSign'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 a019f785d..91af379a6 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 string $schemaTypeName = 'Volcano'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Volcano'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Landform'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Volcano'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Volcano'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Landform'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 9c5b8207f..f4ec0bd0c 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 string $schemaTypeName = 'VoteAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/VoteAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'ChooseAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'VoteAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/VoteAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'ChooseAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 4ab834bb1..180bc13ed 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 string $schemaTypeName = 'WPAdBlock'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'WPAdBlock'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/WPAdBlock'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/WPAdBlock'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'WebPageElement'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'WebPageElement'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'An advertising section of the page.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 d1ff7522f..3bb22d6b0 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 string $schemaTypeName = 'WPFooter'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'WPFooter'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/WPFooter'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/WPFooter'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'WebPageElement'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'WebPageElement'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'The footer section of the page.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 a3620e5dc..40f3e2318 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 string $schemaTypeName = 'WPHeader'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'WPHeader'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/WPHeader'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/WPHeader'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'WebPageElement'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'WebPageElement'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'The header section of the page.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 b34688b1f..f1d682036 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 string $schemaTypeName = 'WPSideBar'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'WPSideBar'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/WPSideBar'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/WPSideBar'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'WebPageElement'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'WebPageElement'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A sidebar section of the page.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 15542fa67..c23bc00a0 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 string $schemaTypeName = 'WantAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/WantAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'ReactAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'WantAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/WantAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'ReactAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 afaf7699b..ad7e88b64 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 string $schemaTypeName = 'WarrantyPromise'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/WarrantyPromise'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'StructuredValue'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'WarrantyPromise'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/WarrantyPromise'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'StructuredValue'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 cf82fd95d..248710f6f 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 string $schemaTypeName = 'WarrantyScope'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/WarrantyScope'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Enumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'WarrantyScope'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/WarrantyScope'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Enumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 f341d6820..33c6f18c3 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 string $schemaTypeName = 'WatchAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/WatchAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'ConsumeAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'WatchAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/WatchAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'ConsumeAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 eef74edb7..e0f04cf3a 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 string $schemaTypeName = 'Waterfall'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Waterfall'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'BodyOfWater'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Waterfall'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Waterfall'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'BodyOfWater'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 d913b7cfc..dc4d085b1 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 string $schemaTypeName = 'WeaponConsideration'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/WeaponConsideration'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'AdultOrientedEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'WeaponConsideration'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/WeaponConsideration'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'AdultOrientedEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 eac1722ff..a96cd5aac 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 string $schemaTypeName = 'WearAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/WearAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'UseAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'WearAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/WearAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'UseAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 3bcd53cbc..9edab6ab1 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 string $schemaTypeName = 'WearableMeasurementBack'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/WearableMeasurementBack'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'WearableMeasurementTypeEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'WearableMeasurementBack'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/WearableMeasurementBack'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'WearableMeasurementTypeEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 fb126dc9b..862118f15 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 string $schemaTypeName = 'WearableMeasurementChestOrBust'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/WearableMeasurementChestOrBust'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'WearableMeasurementTypeEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'WearableMeasurementChestOrBust'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/WearableMeasurementChestOrBust'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'WearableMeasurementTypeEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 7a38183eb..981aee993 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 string $schemaTypeName = 'WearableMeasurementCollar'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/WearableMeasurementCollar'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'WearableMeasurementTypeEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'WearableMeasurementCollar'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/WearableMeasurementCollar'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'WearableMeasurementTypeEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 9071b2830..7bf415d07 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 string $schemaTypeName = 'WearableMeasurementCup'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/WearableMeasurementCup'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'WearableMeasurementTypeEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'WearableMeasurementCup'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/WearableMeasurementCup'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'WearableMeasurementTypeEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 fb6320bad..c1826d521 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 string $schemaTypeName = 'WearableMeasurementHeight'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/WearableMeasurementHeight'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'WearableMeasurementTypeEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'WearableMeasurementHeight'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/WearableMeasurementHeight'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'WearableMeasurementTypeEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 445ed637d..cf5d1d8ef 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 string $schemaTypeName = 'WearableMeasurementHips'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/WearableMeasurementHips'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'WearableMeasurementTypeEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'WearableMeasurementHips'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/WearableMeasurementHips'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'WearableMeasurementTypeEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 c4f757486..fb470ccc2 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 string $schemaTypeName = 'WearableMeasurementInseam'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/WearableMeasurementInseam'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'WearableMeasurementTypeEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'WearableMeasurementInseam'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/WearableMeasurementInseam'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'WearableMeasurementTypeEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 427ba8ef7..c0408394b 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 string $schemaTypeName = 'WearableMeasurementLength'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/WearableMeasurementLength'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'WearableMeasurementTypeEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'WearableMeasurementLength'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/WearableMeasurementLength'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'WearableMeasurementTypeEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 20bdbd028..3abdf5297 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 string $schemaTypeName = 'WearableMeasurementOutsideLeg'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/WearableMeasurementOutsideLeg'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'WearableMeasurementTypeEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'WearableMeasurementOutsideLeg'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/WearableMeasurementOutsideLeg'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'WearableMeasurementTypeEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 d76050254..3a16b6d68 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 string $schemaTypeName = 'WearableMeasurementSleeve'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/WearableMeasurementSleeve'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'WearableMeasurementTypeEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'WearableMeasurementSleeve'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/WearableMeasurementSleeve'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'WearableMeasurementTypeEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 9f8b17e6e..86717b417 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 string $schemaTypeName = 'WearableMeasurementTypeEnumeration'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/WearableMeasurementTypeEnumeration'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MeasurementTypeEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'WearableMeasurementTypeEnumeration'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/WearableMeasurementTypeEnumeration'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MeasurementTypeEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 41f52cd1b..1a32831bc 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 string $schemaTypeName = 'WearableMeasurementWaist'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/WearableMeasurementWaist'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'WearableMeasurementTypeEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'WearableMeasurementWaist'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/WearableMeasurementWaist'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'WearableMeasurementTypeEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 2341a9774..384b0c0fd 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 string $schemaTypeName = 'WearableMeasurementWidth'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/WearableMeasurementWidth'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'WearableMeasurementTypeEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'WearableMeasurementWidth'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/WearableMeasurementWidth'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'WearableMeasurementTypeEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 02f154544..55b62a6c6 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 string $schemaTypeName = 'WearableSizeGroupBig'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/WearableSizeGroupBig'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'WearableSizeGroupEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'WearableSizeGroupBig'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/WearableSizeGroupBig'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'WearableSizeGroupEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 1f3a06180..1f9e5db1a 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 string $schemaTypeName = 'WearableSizeGroupBoys'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/WearableSizeGroupBoys'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'WearableSizeGroupEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'WearableSizeGroupBoys'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/WearableSizeGroupBoys'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'WearableSizeGroupEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 ae5c3759e..8ad78d244 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 string $schemaTypeName = 'WearableSizeGroupEnumeration'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/WearableSizeGroupEnumeration'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'SizeGroupEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'WearableSizeGroupEnumeration'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/WearableSizeGroupEnumeration'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'SizeGroupEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 1a6c56c38..7c4252808 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 string $schemaTypeName = 'WearableSizeGroupExtraShort'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/WearableSizeGroupExtraShort'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'WearableSizeGroupEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'WearableSizeGroupExtraShort'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/WearableSizeGroupExtraShort'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'WearableSizeGroupEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 402dd4593..204993fff 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 string $schemaTypeName = 'WearableSizeGroupExtraTall'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/WearableSizeGroupExtraTall'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'WearableSizeGroupEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'WearableSizeGroupExtraTall'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/WearableSizeGroupExtraTall'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'WearableSizeGroupEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 e9c814aab..dde3c64d8 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 string $schemaTypeName = 'WearableSizeGroupGirls'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/WearableSizeGroupGirls'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'WearableSizeGroupEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'WearableSizeGroupGirls'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/WearableSizeGroupGirls'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'WearableSizeGroupEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 6a590fbb8..7706a1361 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 string $schemaTypeName = 'WearableSizeGroupHusky'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/WearableSizeGroupHusky'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'WearableSizeGroupEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'WearableSizeGroupHusky'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/WearableSizeGroupHusky'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'WearableSizeGroupEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 43c8f423a..ad192898b 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 string $schemaTypeName = 'WearableSizeGroupInfants'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/WearableSizeGroupInfants'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'WearableSizeGroupEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'WearableSizeGroupInfants'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/WearableSizeGroupInfants'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'WearableSizeGroupEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 74e7d18df..27f9a3a80 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 string $schemaTypeName = 'WearableSizeGroupJuniors'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/WearableSizeGroupJuniors'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'WearableSizeGroupEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'WearableSizeGroupJuniors'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/WearableSizeGroupJuniors'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'WearableSizeGroupEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 3a50b7740..b4eaf0809 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 string $schemaTypeName = 'WearableSizeGroupMaternity'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/WearableSizeGroupMaternity'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'WearableSizeGroupEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'WearableSizeGroupMaternity'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/WearableSizeGroupMaternity'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'WearableSizeGroupEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 c29cbe036..8bc742706 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 string $schemaTypeName = 'WearableSizeGroupMens'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/WearableSizeGroupMens'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'WearableSizeGroupEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'WearableSizeGroupMens'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/WearableSizeGroupMens'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'WearableSizeGroupEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 8b8d9d494..e4850b7ba 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 string $schemaTypeName = 'WearableSizeGroupMisses'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/WearableSizeGroupMisses'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'WearableSizeGroupEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'WearableSizeGroupMisses'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/WearableSizeGroupMisses'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'WearableSizeGroupEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 ce69c0d1c..c3a932279 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 string $schemaTypeName = 'WearableSizeGroupPetite'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/WearableSizeGroupPetite'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'WearableSizeGroupEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'WearableSizeGroupPetite'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/WearableSizeGroupPetite'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'WearableSizeGroupEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 5cc7e9a16..73295bc71 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 string $schemaTypeName = 'WearableSizeGroupPlus'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/WearableSizeGroupPlus'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'WearableSizeGroupEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'WearableSizeGroupPlus'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/WearableSizeGroupPlus'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'WearableSizeGroupEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 f1485b8c2..6b31e8d11 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 string $schemaTypeName = 'WearableSizeGroupRegular'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/WearableSizeGroupRegular'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'WearableSizeGroupEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'WearableSizeGroupRegular'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/WearableSizeGroupRegular'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'WearableSizeGroupEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 b6db20709..a7aa410de 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 string $schemaTypeName = 'WearableSizeGroupShort'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/WearableSizeGroupShort'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'WearableSizeGroupEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'WearableSizeGroupShort'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/WearableSizeGroupShort'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'WearableSizeGroupEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 cb65638aa..1fe358202 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 string $schemaTypeName = 'WearableSizeGroupTall'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/WearableSizeGroupTall'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'WearableSizeGroupEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'WearableSizeGroupTall'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/WearableSizeGroupTall'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'WearableSizeGroupEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 422128a2e..257e8aff7 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 string $schemaTypeName = 'WearableSizeGroupWomens'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/WearableSizeGroupWomens'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'WearableSizeGroupEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'WearableSizeGroupWomens'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/WearableSizeGroupWomens'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'WearableSizeGroupEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 52f06139e..57a0114dd 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 string $schemaTypeName = 'WearableSizeSystemAU'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/WearableSizeSystemAU'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'WearableSizeSystemEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'WearableSizeSystemAU'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/WearableSizeSystemAU'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'WearableSizeSystemEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 cc8bf8305..27e716624 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 string $schemaTypeName = 'WearableSizeSystemBR'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/WearableSizeSystemBR'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'WearableSizeSystemEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'WearableSizeSystemBR'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/WearableSizeSystemBR'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'WearableSizeSystemEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 95e82acb2..b88dcbc51 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 string $schemaTypeName = 'WearableSizeSystemCN'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/WearableSizeSystemCN'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'WearableSizeSystemEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'WearableSizeSystemCN'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/WearableSizeSystemCN'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'WearableSizeSystemEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 d2f1a90a6..3b3c957cf 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 string $schemaTypeName = 'WearableSizeSystemContinental'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/WearableSizeSystemContinental'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'WearableSizeSystemEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'WearableSizeSystemContinental'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/WearableSizeSystemContinental'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'WearableSizeSystemEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 62ae8ee92..2c77d42a6 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 string $schemaTypeName = 'WearableSizeSystemDE'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/WearableSizeSystemDE'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'WearableSizeSystemEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'WearableSizeSystemDE'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/WearableSizeSystemDE'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'WearableSizeSystemEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 7361093ed..e0ac1c767 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 string $schemaTypeName = 'WearableSizeSystemEN13402'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/WearableSizeSystemEN13402'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'WearableSizeSystemEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'WearableSizeSystemEN13402'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/WearableSizeSystemEN13402'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'WearableSizeSystemEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 87802c665..33668acd9 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 string $schemaTypeName = 'WearableSizeSystemEnumeration'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/WearableSizeSystemEnumeration'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'SizeSystemEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'WearableSizeSystemEnumeration'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/WearableSizeSystemEnumeration'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'SizeSystemEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 0a47d46a0..10d41f2a4 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 string $schemaTypeName = 'WearableSizeSystemEurope'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/WearableSizeSystemEurope'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'WearableSizeSystemEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'WearableSizeSystemEurope'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/WearableSizeSystemEurope'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'WearableSizeSystemEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 47d6eddeb..8193efff9 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 string $schemaTypeName = 'WearableSizeSystemFR'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/WearableSizeSystemFR'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'WearableSizeSystemEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'WearableSizeSystemFR'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/WearableSizeSystemFR'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'WearableSizeSystemEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 d8a1d7390..6733ec296 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 string $schemaTypeName = 'WearableSizeSystemGS1'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/WearableSizeSystemGS1'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'WearableSizeSystemEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'WearableSizeSystemGS1'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/WearableSizeSystemGS1'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'WearableSizeSystemEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 7d8c793c2..b85684329 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 string $schemaTypeName = 'WearableSizeSystemIT'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/WearableSizeSystemIT'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'WearableSizeSystemEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'WearableSizeSystemIT'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/WearableSizeSystemIT'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'WearableSizeSystemEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 31dbc4ea6..ea9f91d59 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 string $schemaTypeName = 'WearableSizeSystemJP'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/WearableSizeSystemJP'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'WearableSizeSystemEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'WearableSizeSystemJP'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/WearableSizeSystemJP'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'WearableSizeSystemEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 6b0aeb19b..7cdc0b0fa 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 string $schemaTypeName = 'WearableSizeSystemMX'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/WearableSizeSystemMX'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'WearableSizeSystemEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'WearableSizeSystemMX'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/WearableSizeSystemMX'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'WearableSizeSystemEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 5cbf24138..1685fcc5a 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 string $schemaTypeName = 'WearableSizeSystemUK'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/WearableSizeSystemUK'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'WearableSizeSystemEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'WearableSizeSystemUK'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/WearableSizeSystemUK'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'WearableSizeSystemEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 12ea2e85c..189f94244 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 string $schemaTypeName = 'WearableSizeSystemUS'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/WearableSizeSystemUS'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'WearableSizeSystemEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'WearableSizeSystemUS'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/WearableSizeSystemUS'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'WearableSizeSystemEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 60e91e6a3..c328d1de9 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 string $schemaTypeName = 'WebAPI'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/WebAPI'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Service'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'WebAPI'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/WebAPI'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Service'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 09fab8ce1..4c969bbdd 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 string $schemaTypeName = 'WebApplication'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'WebApplication'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/WebApplication'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/WebApplication'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'SoftwareApplication'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'SoftwareApplication'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'Web applications.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 24545cdea..98f92ee62 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 string $schemaTypeName = 'WebContent'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'WebContent'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/WebContent'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/WebContent'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 2d62b0ebe..a4bb551ea 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 string $schemaTypeName = 'WebPage'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'WebPage'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/WebPage'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/WebPage'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 c1fe1c060..01eee5f06 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 string $schemaTypeName = 'WebPageElement'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'WebPageElement'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/WebPageElement'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/WebPageElement'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A web page element, like a table or an image.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 3c2684ab4..589905966 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 string $schemaTypeName = 'WebSite'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'WebSite'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/WebSite'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/WebSite'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 72a11169d..8444b83d2 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 string $schemaTypeName = 'Wednesday'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Wednesday'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'DayOfWeek'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Wednesday'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Wednesday'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'DayOfWeek'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 6a9cf1663..e3a6954d1 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 string $schemaTypeName = 'WesternConventional'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/WesternConventional'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicineSystem'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'WesternConventional'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/WesternConventional'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicineSystem'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 967f281e0..f14b21da8 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 string $schemaTypeName = 'Wholesale'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Wholesale'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'DrugCostCategory'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Wholesale'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Wholesale'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'DrugCostCategory'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 46b87d9c5..efda5978b 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 string $schemaTypeName = 'WholesaleStore'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'WholesaleStore'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/WholesaleStore'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/WholesaleStore'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Store'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Store'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A wholesale store.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 40d4d07f4..67ac5eebd 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 string $schemaTypeName = 'WinAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/WinAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'AchieveAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'WinAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/WinAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'AchieveAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 cb1371439..94c98ec95 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 string $schemaTypeName = 'Winery'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'Winery'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Winery'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Winery'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'FoodEstablishment'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'FoodEstablishment'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $schemaTypeDescription = 'A winery.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 0fb16abe7..d8e912730 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 string $schemaTypeName = 'Withdrawn'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Withdrawn'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalStudyStatus'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Withdrawn'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Withdrawn'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalStudyStatus'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 6ab8f2249..7bad66bdb 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 string $schemaTypeName = 'WorkBasedProgram'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/WorkBasedProgram'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'EducationalOccupationalProgram'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'WorkBasedProgram'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/WorkBasedProgram'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'EducationalOccupationalProgram'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 5a3375ac6..586868ef5 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 string $schemaTypeName = 'WorkersUnion'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static string $schemaTypeName = 'WorkersUnion'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/WorkersUnion'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/WorkersUnion'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Organization'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Organization'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $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 727f0a0f9..3882e896f 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 string $schemaTypeName = 'WriteAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/WriteAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CreateAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'WriteAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/WriteAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CreateAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 b1937249f..a594b599f 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 string $schemaTypeName = 'WritePermission'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/WritePermission'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'DigitalDocumentPermissionType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'WritePermission'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/WritePermission'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'DigitalDocumentPermissionType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 d3a0ba017..b4baec3e2 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 string $schemaTypeName = 'XPathType'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/XPathType'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'Text'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'XPathType'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/XPathType'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'Text'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 cfa30db8e..2eea22b1f 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 string $schemaTypeName = 'XRay'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/XRay'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'MedicalImagingTechnique'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'XRay'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/XRay'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'MedicalImagingTechnique'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 0f7348a4b..8e52e14b9 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 string $schemaTypeName = 'ZoneBoardingPolicy'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/ZoneBoardingPolicy'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'BoardingPolicyType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'ZoneBoardingPolicy'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/ZoneBoardingPolicy'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'BoardingPolicyType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 c2727c1fc..74f20855a 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 string $schemaTypeName = 'Zoo'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static string $schemaTypeScope = 'https://schema.org/Zoo'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static string $schemaTypeExtends = 'CivicStructure'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static string $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 string $schemaTypeName = 'Zoo'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static string $schemaTypeScope = 'https://schema.org/Zoo'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static string $schemaTypeExtends = 'CivicStructure'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static string $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 7df5fa520..b40aca1d1 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 @@ -27,7 +26,7 @@ class AuthorLink extends MetaLink // Constants // ========================================================================= - const ITEM_TYPE = 'AuthorLink'; + public const ITEM_TYPE = 'AuthorLink'; // Static Methods // ========================================================================= diff --git a/src/models/metalink/CanonicalLink.php b/src/models/metalink/CanonicalLink.php index 5accd8889..63151f7ed 100644 --- a/src/models/metalink/CanonicalLink.php +++ b/src/models/metalink/CanonicalLink.php @@ -27,7 +27,7 @@ class CanonicalLink extends MetaLink // Constants // ========================================================================= - const ITEM_TYPE = 'CanonicalLink'; + public const ITEM_TYPE = 'CanonicalLink'; // Static Methods // ========================================================================= diff --git a/src/models/metalink/HomeLink.php b/src/models/metalink/HomeLink.php index 036a1a55d..0896be687 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 @@ -27,7 +27,7 @@ class HomeLink extends MetaLink // Constants // ========================================================================= - const ITEM_TYPE = 'HomeLink'; + public const ITEM_TYPE = 'HomeLink'; // Static Methods // ========================================================================= diff --git a/src/models/metatag/DescriptionTag.php b/src/models/metatag/DescriptionTag.php index 6a1f92ab5..763186798 100644 --- a/src/models/metatag/DescriptionTag.php +++ b/src/models/metatag/DescriptionTag.php @@ -25,7 +25,7 @@ class DescriptionTag extends MetaTag // Constants // ========================================================================= - const ITEM_TYPE = 'DescriptionTag'; + public const ITEM_TYPE = 'DescriptionTag'; // Static Methods // ========================================================================= diff --git a/src/models/metatag/OgDescriptionTag.php b/src/models/metatag/OgDescriptionTag.php index 11387b5e2..4bb4b198d 100644 --- a/src/models/metatag/OgDescriptionTag.php +++ b/src/models/metatag/OgDescriptionTag.php @@ -25,7 +25,7 @@ class OgDescriptionTag extends MetaTag // Constants // ========================================================================= - const ITEM_TYPE = 'OgDescriptionTag'; + public const ITEM_TYPE = 'OgDescriptionTag'; // Static Methods // ========================================================================= diff --git a/src/models/metatag/OgImageTag.php b/src/models/metatag/OgImageTag.php index fc6198868..d3fd260c5 100644 --- a/src/models/metatag/OgImageTag.php +++ b/src/models/metatag/OgImageTag.php @@ -25,7 +25,7 @@ class OgImageTag extends MetaTag // Constants // ========================================================================= - const ITEM_TYPE = 'OgImageTag'; + public const ITEM_TYPE = 'OgImageTag'; // Static Methods // ========================================================================= diff --git a/src/models/metatag/OgLocaleTag.php b/src/models/metatag/OgLocaleTag.php index dbfa8ed75..e2950b816 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 @@ -24,7 +24,7 @@ class OgLocaleTag extends MetaTag // Constants // ========================================================================= - const ITEM_TYPE = 'OgLocaleTag'; + public const ITEM_TYPE = 'OgLocaleTag'; // Static Methods // ========================================================================= diff --git a/src/models/metatag/OgTitleTag.php b/src/models/metatag/OgTitleTag.php index 6b2c3a904..129c58334 100644 --- a/src/models/metatag/OgTitleTag.php +++ b/src/models/metatag/OgTitleTag.php @@ -26,7 +26,7 @@ class OgTitleTag extends MetaTag // Constants // ========================================================================= - const ITEM_TYPE = 'OgTitleTag'; + public const ITEM_TYPE = 'OgTitleTag'; // Static Methods // ========================================================================= diff --git a/src/models/metatag/ReferrerTag.php b/src/models/metatag/ReferrerTag.php index eacdf8fab..4f9f2545a 100644 --- a/src/models/metatag/ReferrerTag.php +++ b/src/models/metatag/ReferrerTag.php @@ -23,7 +23,7 @@ class ReferrerTag extends MetaTag // Constants // ========================================================================= - const ITEM_TYPE = 'ReferrerTag'; + public const ITEM_TYPE = 'ReferrerTag'; // Static Methods // ========================================================================= diff --git a/src/models/metatag/RobotsTag.php b/src/models/metatag/RobotsTag.php index 13e1dfe45..e443675fd 100644 --- a/src/models/metatag/RobotsTag.php +++ b/src/models/metatag/RobotsTag.php @@ -26,7 +26,7 @@ class RobotsTag extends MetaTag // Constants // ========================================================================= - const ITEM_TYPE = 'RobotsTag'; + public const ITEM_TYPE = 'RobotsTag'; // Static Methods // ========================================================================= diff --git a/src/models/metatag/TwitterDescriptionTag.php b/src/models/metatag/TwitterDescriptionTag.php index 5b1fd47c7..0ba51b491 100644 --- a/src/models/metatag/TwitterDescriptionTag.php +++ b/src/models/metatag/TwitterDescriptionTag.php @@ -25,7 +25,7 @@ class TwitterDescriptionTag extends MetaTag // Constants // ========================================================================= - const ITEM_TYPE = 'TwitterDescriptionTag'; + public const ITEM_TYPE = 'TwitterDescriptionTag'; // Static Methods // ========================================================================= diff --git a/src/models/metatag/TwitterImageTag.php b/src/models/metatag/TwitterImageTag.php index 96ea02f99..8f2d2edef 100644 --- a/src/models/metatag/TwitterImageTag.php +++ b/src/models/metatag/TwitterImageTag.php @@ -25,7 +25,7 @@ class TwitterImageTag extends MetaTag // Constants // ========================================================================= - const ITEM_TYPE = 'TwitterImageTag'; + public const ITEM_TYPE = 'TwitterImageTag'; // Static Methods // ========================================================================= diff --git a/src/models/metatag/TwitterTitleTag.php b/src/models/metatag/TwitterTitleTag.php index 026a67de5..481e9b384 100644 --- a/src/models/metatag/TwitterTitleTag.php +++ b/src/models/metatag/TwitterTitleTag.php @@ -26,7 +26,7 @@ class TwitterTitleTag extends MetaTag // Constants // ========================================================================= - const ITEM_TYPE = 'TwitterTitleTag'; + public const ITEM_TYPE = 'TwitterTitleTag'; // Static Methods // ========================================================================= diff --git a/src/records/MetaBundle.php b/src/records/MetaBundle.php index 9d148ced3..042165998 100644 --- a/src/records/MetaBundle.php +++ b/src/records/MetaBundle.php @@ -39,7 +39,6 @@ public static function tableName(): string */ public function beforeSave($insert): bool { - $result = parent::beforeSave($insert); if (!Craft::$app->getDb()->getSupportsMb4()) { diff --git a/src/seoelements/SeoCampaign.php b/src/seoelements/SeoCampaign.php index e0c4b3622..29c96595b 100644 --- a/src/seoelements/SeoCampaign.php +++ b/src/seoelements/SeoCampaign.php @@ -44,12 +44,12 @@ class SeoCampaign implements SeoElementInterface // Constants // ========================================================================= - const META_BUNDLE_TYPE = 'campaign'; - const ELEMENT_CLASSES = [ + public const META_BUNDLE_TYPE = 'campaign'; + public const ELEMENT_CLASSES = [ CampaignElement::class, ]; - const REQUIRED_PLUGIN_HANDLE = 'campaign'; - const CONFIG_FILE_PATH = 'campaignmeta/Bundle'; + public const REQUIRED_PLUGIN_HANDLE = 'campaign'; + public const CONFIG_FILE_PATH = 'campaignmeta/Bundle'; // Public Static Methods // ========================================================================= @@ -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__ @@ -183,7 +183,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__ @@ -239,9 +239,8 @@ public static function sitemapElementsQuery(MetaBundle $metaBundle): ElementQuer public static function sitemapAltElement( MetaBundle $metaBundle, int $elementId, - int $siteId - ) - { + int $siteId, + ) { return CampaignElement::find() ->campaignType($metaBundle->sourceHandle) ->id($elementId) diff --git a/src/seoelements/SeoCategory.php b/src/seoelements/SeoCategory.php index 86a2cb041..a41ab884f 100644 --- a/src/seoelements/SeoCategory.php +++ b/src/seoelements/SeoCategory.php @@ -41,16 +41,15 @@ */ class SeoCategory implements SeoElementInterface, GqlSeoElementInterface { - // Constants // ========================================================================= - const META_BUNDLE_TYPE = 'categorygroup'; - const ELEMENT_CLASSES = [ + public const META_BUNDLE_TYPE = 'categorygroup'; + public const ELEMENT_CLASSES = [ Category::class, ]; - const REQUIRED_PLUGIN_HANDLE = null; - const CONFIG_FILE_PATH = 'categorymeta/Bundle'; + public const REQUIRED_PLUGIN_HANDLE = null; + public const CONFIG_FILE_PATH = 'categorymeta/Bundle'; // Public Static Methods // ========================================================================= @@ -106,7 +105,7 @@ public static function installEventHandlers() Event::on( Categories::class, Categories::EVENT_AFTER_SAVE_GROUP, - function (CategoryGroupEvent $event) { + function(CategoryGroupEvent $event) { Craft::debug( 'Categories::EVENT_AFTER_SAVE_GROUP', __METHOD__ @@ -117,7 +116,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__ @@ -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__ @@ -184,7 +183,7 @@ function (CategoryGroupEvent $event) { Event::on( Category::class, Category::EVENT_DEFINE_SIDEBAR_HTML, - static function (DefineHtmlEvent $event) { + static function(DefineHtmlEvent $event) { Craft::debug( 'Category::EVENT_DEFINE_SIDEBAR_HTML', __METHOD__ @@ -243,9 +242,8 @@ public static function sitemapElementsQuery(MetaBundle $metaBundle): ElementQuer public static function sitemapAltElement( MetaBundle $metaBundle, int $elementId, - int $siteId - ) - { + int $siteId, + ) { return Category::find() ->id($elementId) ->siteId($siteId) diff --git a/src/seoelements/SeoDigitalProduct.php b/src/seoelements/SeoDigitalProduct.php index 46c45cf5d..487a6fb95 100644 --- a/src/seoelements/SeoDigitalProduct.php +++ b/src/seoelements/SeoDigitalProduct.php @@ -44,12 +44,12 @@ class SeoDigitalProduct implements SeoElementInterface, GqlSeoElementInterface // Constants // ========================================================================= - const META_BUNDLE_TYPE = 'digitalproduct'; - const ELEMENT_CLASSES = [ + public const META_BUNDLE_TYPE = 'digitalproduct'; + public const ELEMENT_CLASSES = [ Product::class, ]; - const REQUIRED_PLUGIN_HANDLE = 'digital-products'; - const CONFIG_FILE_PATH = 'digitalproductmeta/Bundle'; + public const REQUIRED_PLUGIN_HANDLE = 'digital-products'; + public const CONFIG_FILE_PATH = 'digitalproductmeta/Bundle'; // Public Static Methods // ========================================================================= @@ -105,7 +105,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__ @@ -121,7 +121,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__ @@ -177,7 +177,7 @@ function (ProductTypeEvent $event) { Event::on( Product::class, Product::EVENT_DEFINE_SIDEBAR_HTML, - static function (DefineHtmlEvent $event) { + static function(DefineHtmlEvent $event) { Craft::debug( 'Product::EVENT_DEFINE_SIDEBAR_HTML', __METHOD__ @@ -233,9 +233,8 @@ public static function sitemapElementsQuery(MetaBundle $metaBundle): ElementQuer public static function sitemapAltElement( MetaBundle $metaBundle, int $elementId, - int $siteId - ) - { + int $siteId, + ) { return Product::find() ->id($elementId) ->siteId($siteId) diff --git a/src/seoelements/SeoEntry.php b/src/seoelements/SeoEntry.php index c2253cc64..e3bd70784 100644 --- a/src/seoelements/SeoEntry.php +++ b/src/seoelements/SeoEntry.php @@ -45,14 +45,14 @@ class SeoEntry implements SeoElementInterface, GqlSeoElementInterface // Constants // ========================================================================= - const META_BUNDLE_TYPE = 'section'; - const ELEMENT_CLASSES = [ + public const META_BUNDLE_TYPE = 'section'; + public const ELEMENT_CLASSES = [ Entry::class, EntryDraft::class, EntryVersion::class, ]; - const REQUIRED_PLUGIN_HANDLE = null; - const CONFIG_FILE_PATH = 'entrymeta/Bundle'; + public const REQUIRED_PLUGIN_HANDLE = null; + public const CONFIG_FILE_PATH = 'entrymeta/Bundle'; // Public Static Methods // ========================================================================= @@ -108,7 +108,7 @@ public static function installEventHandlers() Event::on( Sections::class, Sections::EVENT_AFTER_SAVE_SECTION, - function (SectionEvent $event) { + function(SectionEvent $event) { Craft::debug( 'Sections::EVENT_AFTER_SAVE_SECTION', __METHOD__ @@ -119,7 +119,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__ @@ -134,7 +134,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__ @@ -157,7 +157,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) { Event::on( Entry::class, Entry::EVENT_DEFINE_SIDEBAR_HTML, - static function (DefineHtmlEvent $event) { + static function(DefineHtmlEvent $event) { Craft::debug( 'Entry::EVENT_DEFINE_SIDEBAR_HTML', __METHOD__ @@ -246,9 +246,8 @@ public static function sitemapElementsQuery(MetaBundle $metaBundle): ElementQuer public static function sitemapAltElement( MetaBundle $metaBundle, int $elementId, - int $siteId - ) - { + int $siteId, + ) { return Entry::find() ->section($metaBundle->sourceHandle) ->id($elementId) diff --git a/src/seoelements/SeoEvent.php b/src/seoelements/SeoEvent.php index 4671b51fa..57afbfde7 100644 --- a/src/seoelements/SeoEvent.php +++ b/src/seoelements/SeoEvent.php @@ -45,12 +45,12 @@ class SeoEvent implements SeoElementInterface, GqlSeoElementInterface // Constants // ========================================================================= - const META_BUNDLE_TYPE = 'event'; - const ELEMENT_CLASSES = [ + public const META_BUNDLE_TYPE = 'event'; + public const ELEMENT_CLASSES = [ Event::class, ]; - const REQUIRED_PLUGIN_HANDLE = 'calendar'; - const CONFIG_FILE_PATH = 'eventmeta/Bundle'; + public const REQUIRED_PLUGIN_HANDLE = 'calendar'; + public const CONFIG_FILE_PATH = 'eventmeta/Bundle'; // Public Static Methods // ========================================================================= @@ -86,7 +86,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__ @@ -97,7 +97,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__ @@ -112,7 +112,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__ @@ -137,7 +137,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__ @@ -168,7 +168,7 @@ function (DeleteModelEvent $event) { BaseEvent::on( Event::class, Event::EVENT_DEFINE_SIDEBAR_HTML, - static function (DefineHtmlEvent $event) { + static function(DefineHtmlEvent $event) { Craft::debug( 'Entry::EVENT_DEFINE_SIDEBAR_HTML', __METHOD__ @@ -262,9 +262,8 @@ public static function sitemapElementsQuery(MetaBundle $metaBundle): ElementQuer public static function sitemapAltElement( MetaBundle $metaBundle, int $elementId, - int $siteId - ) - { + int $siteId, + ) { return Event::find() ->id($elementId) ->siteId($siteId) diff --git a/src/seoelements/SeoProduct.php b/src/seoelements/SeoProduct.php index 310c15138..e467a0f3d 100644 --- a/src/seoelements/SeoProduct.php +++ b/src/seoelements/SeoProduct.php @@ -45,12 +45,12 @@ class SeoProduct implements SeoElementInterface, GqlSeoElementInterface // Constants // ========================================================================= - const META_BUNDLE_TYPE = 'product'; - const ELEMENT_CLASSES = [ + public const META_BUNDLE_TYPE = 'product'; + public const ELEMENT_CLASSES = [ Product::class, ]; - const REQUIRED_PLUGIN_HANDLE = 'commerce'; - const CONFIG_FILE_PATH = 'productmeta/Bundle'; + public const REQUIRED_PLUGIN_HANDLE = 'commerce'; + public const CONFIG_FILE_PATH = 'productmeta/Bundle'; // Public Static Methods // ========================================================================= @@ -106,7 +106,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__ @@ -121,7 +121,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__ @@ -184,7 +184,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 */ @@ -211,7 +211,7 @@ function (ProductTypeEvent $event) { Event::on( Product::class, Product::EVENT_DEFINE_SIDEBAR_HTML, - static function (DefineHtmlEvent $event) { + static function(DefineHtmlEvent $event) { Craft::debug( 'Product::EVENT_DEFINE_SIDEBAR_HTML', __METHOD__ @@ -267,9 +267,8 @@ public static function sitemapElementsQuery(MetaBundle $metaBundle): ElementQuer public static function sitemapAltElement( MetaBundle $metaBundle, int $elementId, - int $siteId - ) - { + int $siteId, + ) { return Product::find() ->id($elementId) ->siteId($siteId) diff --git a/src/seoelements/SeoShopifyProduct.php b/src/seoelements/SeoShopifyProduct.php index c324738bf..4395aec54 100644 --- a/src/seoelements/SeoShopifyProduct.php +++ b/src/seoelements/SeoShopifyProduct.php @@ -40,12 +40,12 @@ class SeoShopifyProduct implements SeoElementInterface // Constants // ========================================================================= - const META_BUNDLE_TYPE = 'shopifyproduct'; - const ELEMENT_CLASSES = [ + public const META_BUNDLE_TYPE = 'shopifyproduct'; + public const ELEMENT_CLASSES = [ Product::class, ]; - const REQUIRED_PLUGIN_HANDLE = 'shopify'; - const CONFIG_FILE_PATH = 'shopifyproductmeta/Bundle'; + public const REQUIRED_PLUGIN_HANDLE = 'shopify'; + public const CONFIG_FILE_PATH = 'shopifyproductmeta/Bundle'; // Public Static Properties // ========================================================================= @@ -106,7 +106,7 @@ public static function installEventHandlers() Event::on( Products::class, Products::EVENT_BEFORE_SYNCHRONIZE_PRODUCT, - function (ShopifyProductSyncEvent $event) { + function(ShopifyProductSyncEvent $event) { Craft::debug( 'Products::EVENT_BEFORE_SYNCHRONIZE_PRODUCT', __METHOD__ @@ -130,7 +130,7 @@ function (ShopifyProductSyncEvent $event) { Event::on( Product::class, Product::EVENT_DEFINE_SIDEBAR_HTML, - static function (DefineHtmlEvent $event) { + static function(DefineHtmlEvent $event) { Craft::debug( 'Product::EVENT_DEFINE_SIDEBAR_HTML', __METHOD__ @@ -185,9 +185,8 @@ public static function sitemapElementsQuery(MetaBundle $metaBundle): ElementQuer public static function sitemapAltElement( MetaBundle $metaBundle, int $elementId, - int $siteId - ) - { + 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 7e64f85d1..908135f14 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 c047a873f..b49f63fce 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 0508817c9..913f60abf 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 7a1bcb08d..9a9c04ac6 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 7e64f85d1..908135f14 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 c047a873f..b49f63fce 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 0508817c9..913f60abf 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 7a1bcb08d..9a9c04ac6 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 7e64f85d1..908135f14 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 c047a873f..b49f63fce 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 0508817c9..913f60abf 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 7a1bcb08d..9a9c04ac6 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 7e64f85d1..908135f14 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 c047a873f..b49f63fce 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 0508817c9..913f60abf 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 7a1bcb08d..9a9c04ac6 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 c7ad7ee83..87ca8de09 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 8ef0828fb..663548b4f 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 91132a28e..daab3729b 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 9f085ba33..12fe9d511 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 130081025..b0e472643 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 48478bec5..36c523fbe 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 7e64f85d1..908135f14 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 c047a873f..b49f63fce 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 537affc79..cabf6beb9 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 7a1bcb08d..9a9c04ac6 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 d14114840..a7efd66b8 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 c4cdc8d37..97bf0961b 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 c4cdc8d37..97bf0961b 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/SiteVars.php b/src/seomatic-config/globalmeta/SiteVars.php index ec47f8ef8..9505e5444 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 45600b85e..738221545 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 7e64f85d1..908135f14 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 c047a873f..b49f63fce 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 0508817c9..913f60abf 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 7a1bcb08d..9a9c04ac6 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/seomatic-config/shopifyproductmeta/LinkContainer.php b/src/seomatic-config/shopifyproductmeta/LinkContainer.php index 7e64f85d1..908135f14 100644 --- a/src/seomatic-config/shopifyproductmeta/LinkContainer.php +++ b/src/seomatic-config/shopifyproductmeta/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/shopifyproductmeta/ScriptContainer.php b/src/seomatic-config/shopifyproductmeta/ScriptContainer.php index c047a873f..b49f63fce 100644 --- a/src/seomatic-config/shopifyproductmeta/ScriptContainer.php +++ b/src/seomatic-config/shopifyproductmeta/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/shopifyproductmeta/SitemapVars.php b/src/seomatic-config/shopifyproductmeta/SitemapVars.php index 0508817c9..913f60abf 100644 --- a/src/seomatic-config/shopifyproductmeta/SitemapVars.php +++ b/src/seomatic-config/shopifyproductmeta/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/shopifyproductmeta/TagContainer.php b/src/seomatic-config/shopifyproductmeta/TagContainer.php index 7a1bcb08d..9a9c04ac6 100644 --- a/src/seomatic-config/shopifyproductmeta/TagContainer.php +++ b/src/seomatic-config/shopifyproductmeta/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 36fd573d9..f0d8d754b 100644 --- a/src/services/FrontendTemplates.php +++ b/src/services/FrontendTemplates.php @@ -33,19 +33,19 @@ class FrontendTemplates extends Component // Constants // ========================================================================= - const FRONTENDTEMPLATES_CONTAINER = Seomatic::SEOMATIC_HANDLE . EditableTemplate::TEMPLATE_TYPE; + public const FRONTENDTEMPLATES_CONTAINER = Seomatic::SEOMATIC_HANDLE . EditableTemplate::TEMPLATE_TYPE; - const HUMANS_TXT_HANDLE = 'humans'; - const ROBOTS_TXT_HANDLE = 'robots'; - const ADS_TXT_HANDLE = 'ads'; - const SECURITY_TXT_HANDLE = 'security'; + public const HUMANS_TXT_HANDLE = 'humans'; + public const ROBOTS_TXT_HANDLE = 'robots'; + public const ADS_TXT_HANDLE = 'ads'; + public const SECURITY_TXT_HANDLE = 'security'; - const GLOBAL_FRONTENDTEMPLATE_CACHE_TAG = 'seomatic_frontendtemplate'; - const FRONTENDTEMPLATE_CACHE_TAG = 'seomatic_frontendtemplate_'; + public const GLOBAL_FRONTENDTEMPLATE_CACHE_TAG = 'seomatic_frontendtemplate'; + public const FRONTENDTEMPLATE_CACHE_TAG = 'seomatic_frontendtemplate_'; - const CACHE_KEY = 'seomatic_frontendtemplate_'; + public const CACHE_KEY = 'seomatic_frontendtemplate_'; - const IGNORE_DB_ATTRIBUTES = [ + public const IGNORE_DB_ATTRIBUTES = [ 'id', 'dateCreated', 'dateUpdated', @@ -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 8f9f782e3..ddef7e857 100644 --- a/src/services/Helper.php +++ b/src/services/Helper.php @@ -43,7 +43,7 @@ class Helper extends Component // Constants // ========================================================================= - const TWITTER_TRANSFORM_MAP = [ + public const TWITTER_TRANSFORM_MAP = [ 'summary' => 'twitter-summary', 'summary_large_image' => 'twitter-large', 'app' => 'twitter-large', @@ -474,9 +474,8 @@ public function socialTransformWidth( $asset, $transformName = '', $siteId = null, - $transformMode = null - ): string - { + $transformMode = null, + ): string { return ImageTransformHelper::socialTransformWidth($asset, $transformName, $siteId, $transformMode); } @@ -495,9 +494,8 @@ public function socialTransformHeight( $asset, $transformName = '', $siteId = null, - $transformMode = null - ): string - { + $transformMode = null, + ): string { return ImageTransformHelper::socialTransformHeight($asset, $transformName, $siteId, $transformMode); } diff --git a/src/services/JsonLd.php b/src/services/JsonLd.php index 1c7edf9c9..23e8eda74 100644 --- a/src/services/JsonLd.php +++ b/src/services/JsonLd.php @@ -31,7 +31,7 @@ class JsonLd extends MetaService // Constants // ========================================================================= - const DEFAULT_TYPE = 'Thing'; + public const DEFAULT_TYPE = 'Thing'; // Public Methods // ========================================================================= diff --git a/src/services/Link.php b/src/services/Link.php index e93ebf3cc..b5ffc1943 100644 --- a/src/services/Link.php +++ b/src/services/Link.php @@ -31,7 +31,7 @@ class Link extends MetaService // Constants // ========================================================================= - const DEFAULT_TYPE = null; + public const DEFAULT_TYPE = null; // Public Methods // ========================================================================= diff --git a/src/services/MetaBundles.php b/src/services/MetaBundles.php index caddbc263..779dd24e8 100644 --- a/src/services/MetaBundles.php +++ b/src/services/MetaBundles.php @@ -52,17 +52,17 @@ class MetaBundles extends Component // Constants // ========================================================================= - const GLOBAL_META_BUNDLE = '__GLOBAL_BUNDLE__'; - const FIELD_META_BUNDLE = 'field'; + public const GLOBAL_META_BUNDLE = '__GLOBAL_BUNDLE__'; + public const FIELD_META_BUNDLE = 'field'; - const IGNORE_DB_ATTRIBUTES = [ + public const IGNORE_DB_ATTRIBUTES = [ 'id', 'dateCreated', 'dateUpdated', 'uid', ]; - const ALWAYS_INCLUDED_SEO_SETTINGS_FIELDS = [ + public const ALWAYS_INCLUDED_SEO_SETTINGS_FIELDS = [ 'twitterTitle', 'twitterDescription', 'twitterImage', @@ -74,7 +74,7 @@ class MetaBundles extends Component 'ogImageDescription', ]; - const COMPOSITE_INHERITANCE_CHILDREN = [ + public const COMPOSITE_INHERITANCE_CHILDREN = [ 'seoImage' => [ 'metaBundleSettings.seoImageTransformMode', 'metaBundleSettings.seoImageTransform', @@ -98,7 +98,7 @@ class MetaBundles extends Component ], ]; - const PRESERVE_SCRIPT_SETTINGS = [ + public const PRESERVE_SCRIPT_SETTINGS = [ 'include', 'tagAttrs', 'templateString', @@ -108,7 +108,7 @@ class MetaBundles extends Component 'vars', ]; - const PRESERVE_FRONTEND_TEMPLATE_SETTINGS = [ + public const PRESERVE_FRONTEND_TEMPLATE_SETTINGS = [ 'include', 'templateString', ]; @@ -346,9 +346,8 @@ public function createMetaBundleFromSeoElement( $seoElement, $sourceModel, int $sourceSiteId, - $baseConfig = null - ) - { + $baseConfig = null, + ) { $metaBundle = null; // Get the site settings and turn them into arrays /** @var Section|CategoryGroup|ProductType $sourceModel */ @@ -754,7 +753,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]); @@ -771,7 +769,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()); @@ -839,7 +837,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 de203c31a..a40140bed 100644 --- a/src/services/MetaContainers.php +++ b/src/services/MetaContainers.php @@ -63,16 +63,16 @@ class MetaContainers extends Component // Constants // ========================================================================= - const GLOBAL_METACONTAINER_CACHE_TAG = 'seomatic_metacontainer'; - const METACONTAINER_CACHE_TAG = 'seomatic_metacontainer_'; + public const GLOBAL_METACONTAINER_CACHE_TAG = 'seomatic_metacontainer'; + public const METACONTAINER_CACHE_TAG = 'seomatic_metacontainer_'; - const CACHE_KEY = 'seomatic_metacontainer_'; - const INVALID_RESPONSE_CACHE_KEY = 'seomatic_invalid_response'; - const GLOBALS_CACHE_KEY = 'parsed_globals_'; - const SCRIPTS_CACHE_KEY = 'body_scripts_'; + public const CACHE_KEY = 'seomatic_metacontainer_'; + public const INVALID_RESPONSE_CACHE_KEY = 'seomatic_invalid_response'; + public const GLOBALS_CACHE_KEY = 'parsed_globals_'; + public const SCRIPTS_CACHE_KEY = 'body_scripts_'; /** @var array Rules for replacement values on arbitrary empty values */ - const COMPOSITE_SETTING_LOOKUP = [ + public const COMPOSITE_SETTING_LOOKUP = [ 'ogImage' => [ 'metaBundleSettings.ogImageSource' => 'sameAsSeo.seoImage', ], @@ -95,7 +95,7 @@ class MetaContainers extends Component * }); * ``` */ - const EVENT_INVALIDATE_CONTAINER_CACHES = 'invalidateContainerCaches'; + public const EVENT_INVALIDATE_CONTAINER_CACHES = 'invalidateContainerCaches'; /** * @event MetaBundleDebugDataEvent The event that is triggered to record MetaBundle @@ -111,7 +111,7 @@ class MetaContainers extends Component * }); * ``` */ - const EVENT_METABUNDLE_DEBUG_DATA = 'metaBundleDebugData'; + public const EVENT_METABUNDLE_DEBUG_DATA = 'metaBundleDebugData'; // Public Properties // ========================================================================= @@ -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__ @@ -288,9 +288,8 @@ public function previewMetaContainers( string $uri = '', int $siteId = null, bool $parseVariables = false, - bool $includeElement = true - ) - { + 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__ @@ -990,8 +989,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/SeoElements.php b/src/services/SeoElements.php index a107a6b73..5ed133238 100644 --- a/src/services/SeoElements.php +++ b/src/services/SeoElements.php @@ -55,9 +55,9 @@ class SeoElements extends Component * ); * ``` */ - const EVENT_REGISTER_SEO_ELEMENT_TYPES = 'registerSeoElementTypes'; + public const EVENT_REGISTER_SEO_ELEMENT_TYPES = 'registerSeoElementTypes'; - const DEFAULT_SEO_ELEMENT_TYPES = [ + public const DEFAULT_SEO_ELEMENT_TYPES = [ SeoCampaign::class, SeoCategory::class, SeoDigitalProduct::class, diff --git a/src/services/ServicesTrait.php b/src/services/ServicesTrait.php index 0661e3916..4da00b2a0 100644 --- a/src/services/ServicesTrait.php +++ b/src/services/ServicesTrait.php @@ -88,7 +88,7 @@ public static function config(): array 'errorEntry' => 'src/js/seomatic.js', 'useDevServer' => true, ], - ] + ], ]; } diff --git a/src/services/Sitemaps.php b/src/services/Sitemaps.php index 2d374e10c..3bc4c409d 100644 --- a/src/services/Sitemaps.php +++ b/src/services/Sitemaps.php @@ -42,13 +42,13 @@ class Sitemaps extends Component implements SitemapInterface // Constants // ========================================================================= - const SEOMATIC_SITEMAPINDEX_CONTAINER = Seomatic::SEOMATIC_HANDLE . SitemapIndexTemplate::TEMPLATE_TYPE; + public const SEOMATIC_SITEMAPINDEX_CONTAINER = Seomatic::SEOMATIC_HANDLE . SitemapIndexTemplate::TEMPLATE_TYPE; - const SEOMATIC_SITEMAP_CONTAINER = Seomatic::SEOMATIC_HANDLE . SitemapTemplate::TEMPLATE_TYPE; + public const SEOMATIC_SITEMAP_CONTAINER = Seomatic::SEOMATIC_HANDLE . SitemapTemplate::TEMPLATE_TYPE; - const SEOMATIC_SITEMAPCUSTOM_CONTAINER = Seomatic::SEOMATIC_HANDLE . SitemapCustomTemplate::TEMPLATE_TYPE; + public const SEOMATIC_SITEMAPCUSTOM_CONTAINER = Seomatic::SEOMATIC_HANDLE . SitemapCustomTemplate::TEMPLATE_TYPE; - const SEARCH_ENGINE_SUBMISSION_URLS = [ + public const SEARCH_ENGINE_SUBMISSION_URLS = [ ]; // Protected Properties @@ -82,7 +82,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/services/Tag.php b/src/services/Tag.php index f554beef6..589928b66 100644 --- a/src/services/Tag.php +++ b/src/services/Tag.php @@ -31,11 +31,11 @@ class Tag extends MetaService // Constants // ========================================================================= - const FACEBOOK_HANDLE = 'opengraph'; - const TWITTER_HANDLE = 'twitter'; - const MISC_HANDLE = 'miscellaneous'; + public const FACEBOOK_HANDLE = 'opengraph'; + public const TWITTER_HANDLE = 'twitter'; + public const MISC_HANDLE = 'miscellaneous'; - const DEFAULT_TYPE = null; + public const DEFAULT_TYPE = null; // Public Methods // ========================================================================= diff --git a/src/translations/en/seomatic.php b/src/translations/en/seomatic.php index 95f976870..e642f7380 100644 --- a/src/translations/en/seomatic.php +++ b/src/translations/en/seomatic.php @@ -511,5 +511,5 @@ ' Choose as general or specific of an schema.org entity type as you wish.' => ' Choose as general or specific of an schema.org entity type as you wish.', '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', - '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 @.' + '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 @.', ]; diff --git a/src/twigextensions/SeomaticTwigExtension.php b/src/twigextensions/SeomaticTwigExtension.php index 73100f5b1..a75d9d259 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 d3dce1108..d23da5657 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 ); } }