From c687eff53db2de8d44e130279f20ba6be364d4bc Mon Sep 17 00:00:00 2001 From: Max Richter Date: Sun, 17 Aug 2025 15:16:17 +0200 Subject: [PATCH] big tings --- go.work | 1 + go.work.sum | 4 + parser/blocks.go | 74 -- parser/blocks/block_list.go | 5 - parser/blocks/block_yaml.go | 18 - parser/blocks/blocks.go | 80 -- parser/blocks/template.go | 141 --- parser/blocks_test.go | 55 - parser/decoders/decoder.go | 41 + parser/decoders/decoder_test.go | 56 + parser/decoders/list.go | 31 + parser/decoders/list_test.go | 90 ++ parser/decoders/yaml.go | 32 + parser/go.mod | 5 +- parser/go.sum | 2 + parser/main.go | 74 +- parser/main_test.go | 9 +- parser/{ => matcher}/matcher.go | 59 +- parser/{ => matcher}/matcher_test.go | 30 +- parser/parser.go | 15 - parser/parser_test.go | 42 - parser/testdata/recipe_salad/input.md | 3 +- parser/testdata/recipe_salad/output.json | 3 +- parser/utils/math.go | 8 + .../read_test_data.go} | 6 +- parser/utils/set_path_value.go | 65 ++ parser/utils/set_path_value_test.go | 132 +++ registry/go.mod | 4 + registry/go.sum | 4 + registry/registry.go | 48 - registry/schema-org/3DModel.schema.json | 19 + .../schema-org/AMRadioChannel.schema.json | 13 + registry/schema-org/APIReference.schema.json | 44 + registry/schema-org/AboutPage.schema.json | 13 + registry/schema-org/AcceptAction.schema.json | 13 + registry/schema-org/Accommodation.schema.json | 127 +++ .../schema-org/AccountingService.schema.json | 13 + registry/schema-org/AchieveAction.schema.json | 13 + registry/schema-org/Action.schema.json | 116 +++ .../ActionAccessSpecification.schema.json | 84 ++ .../schema-org/ActionStatusType.schema.json | 13 + .../schema-org/ActivateAction.schema.json | 13 + registry/schema-org/AddAction.schema.json | 13 + .../schema-org/AdministrativeArea.schema.json | 13 + .../schema-org/AdultEntertainment.schema.json | 13 + .../AdultOrientedEnumeration.schema.json | 49 + .../AdvertiserContentArticle.schema.json | 13 + .../schema-org/AggregateOffer.schema.json | 39 + .../schema-org/AggregateRating.schema.json | 27 + registry/schema-org/AgreeAction.schema.json | 13 + registry/schema-org/Airline.schema.json | 26 + registry/schema-org/Airport.schema.json | 29 + .../schema-org/AlignmentObject.schema.json | 39 + .../schema-org/AllocateAction.schema.json | 13 + registry/schema-org/AmpStory.schema.json | 17 + registry/schema-org/AmusementPark.schema.json | 13 + .../AnalysisNewsArticle.schema.json | 13 + .../AnatomicalStructure.schema.json | 62 ++ .../schema-org/AnatomicalSystem.schema.json | 47 + registry/schema-org/AnimalShelter.schema.json | 13 + registry/schema-org/Answer.schema.json | 39 + registry/schema-org/Apartment.schema.json | 23 + .../schema-org/ApartmentComplex.schema.json | 44 + registry/schema-org/AppendAction.schema.json | 13 + registry/schema-org/ApplyAction.schema.json | 13 + .../schema-org/ApprovedIndication.schema.json | 13 + registry/schema-org/Aquarium.schema.json | 13 + .../schema-org/ArchiveComponent.schema.json | 22 + .../ArchiveOrganization.schema.json | 22 + registry/schema-org/ArriveAction.schema.json | 13 + registry/schema-org/ArtGallery.schema.json | 13 + registry/schema-org/Artery.schema.json | 23 + registry/schema-org/Article.schema.json | 77 ++ registry/schema-org/AskAction.schema.json | 22 + .../AskPublicNewsArticle.schema.json | 13 + registry/schema-org/AssessAction.schema.json | 13 + registry/schema-org/AssignAction.schema.json | 13 + registry/schema-org/Atlas.schema.json | 13 + registry/schema-org/Attorney.schema.json | 13 + registry/schema-org/Audience.schema.json | 23 + registry/schema-org/AudioObject.schema.json | 30 + .../AudioObjectSnapshot.schema.json | 8 + registry/schema-org/Audiobook.schema.json | 27 + .../schema-org/AuthorizeAction.schema.json | 39 + registry/schema-org/AutoBodyShop.schema.json | 13 + registry/schema-org/AutoDealer.schema.json | 13 + .../schema-org/AutoPartsStore.schema.json | 14 + registry/schema-org/AutoRental.schema.json | 13 + registry/schema-org/AutoRepair.schema.json | 13 + registry/schema-org/AutoWash.schema.json | 13 + .../schema-org/AutomatedTeller.schema.json | 13 + .../schema-org/AutomotiveBusiness.schema.json | 13 + .../BackgroundNewsArticle.schema.json | 13 + registry/schema-org/Bakery.schema.json | 13 + registry/schema-org/BankAccount.schema.json | 33 + .../schema-org/BankOrCreditUnion.schema.json | 13 + registry/schema-org/BarOrPub.schema.json | 13 + registry/schema-org/Barcode.schema.json | 8 + registry/schema-org/Beach.schema.json | 13 + registry/schema-org/BeautySalon.schema.json | 13 + .../schema-org/BedAndBreakfast.schema.json | 13 + registry/schema-org/BedDetails.schema.json | 23 + registry/schema-org/BedType.schema.json | 13 + .../schema-org/BefriendAction.schema.json | 13 + registry/schema-org/BikeStore.schema.json | 8 + registry/schema-org/BioChemEntity.schema.json | 180 ++++ registry/schema-org/Blog.schema.json | 33 + registry/schema-org/BlogPosting.schema.json | 13 + registry/schema-org/BloodTest.schema.json | 13 + .../schema-org/BoardingPolicyType.schema.json | 17 + .../schema-org/BoatReservation.schema.json | 13 + registry/schema-org/BoatTerminal.schema.json | 13 + registry/schema-org/BoatTrip.schema.json | 23 + ...BodyMeasurementTypeEnumeration.schema.json | 13 + registry/schema-org/BodyOfWater.schema.json | 13 + registry/schema-org/Bone.schema.json | 13 + registry/schema-org/Book.schema.json | 36 + .../schema-org/BookFormatType.schema.json | 20 + registry/schema-org/BookSeries.schema.json | 13 + registry/schema-org/BookStore.schema.json | 8 + .../schema-org/BookmarkAction.schema.json | 13 + registry/schema-org/BorrowAction.schema.json | 35 + registry/schema-org/BowlingAlley.schema.json | 13 + .../schema-org/BrainStructure.schema.json | 13 + registry/schema-org/Brand.schema.json | 53 + .../schema-org/BreadcrumbList.schema.json | 13 + registry/schema-org/Brewery.schema.json | 13 + registry/schema-org/Bridge.schema.json | 13 + .../schema-org/BroadcastChannel.schema.json | 42 + .../schema-org/BroadcastEvent.schema.json | 39 + ...roadcastFrequencySpecification.schema.json | 27 + .../schema-org/BroadcastService.schema.json | 71 ++ .../schema-org/BrokerageAccount.schema.json | 13 + .../schema-org/BuddhistTemple.schema.json | 13 + registry/schema-org/BusOrCoach.schema.json | 23 + .../schema-org/BusReservation.schema.json | 13 + registry/schema-org/BusStation.schema.json | 13 + registry/schema-org/BusStop.schema.json | 13 + registry/schema-org/BusTrip.schema.json | 31 + .../schema-org/BusinessAudience.schema.json | 27 + .../schema-org/BusinessEntityType.schema.json | 7 + registry/schema-org/BusinessEvent.schema.json | 13 + .../schema-org/BusinessFunction.schema.json | 7 + registry/schema-org/BuyAction.schema.json | 43 + registry/schema-org/CDCPMDRecord.schema.json | 147 +++ .../CableOrSatelliteService.schema.json | 13 + .../schema-org/CafeOrCoffeeShop.schema.json | 13 + registry/schema-org/Campground.schema.json | 17 + registry/schema-org/CampingPitch.schema.json | 13 + registry/schema-org/Canal.schema.json | 13 + registry/schema-org/CancelAction.schema.json | 13 + registry/schema-org/Car.schema.json | 23 + registry/schema-org/CarUsageType.schema.json | 21 + registry/schema-org/Casino.schema.json | 13 + registry/schema-org/CategoryCode.schema.json | 39 + .../schema-org/CategoryCodeSet.schema.json | 22 + .../schema-org/CatholicChurch.schema.json | 8 + registry/schema-org/Cemetery.schema.json | 13 + registry/schema-org/Certification.schema.json | 124 +++ ...CertificationStatusEnumeration.schema.json | 17 + registry/schema-org/Chapter.schema.json | 30 + registry/schema-org/CheckAction.schema.json | 13 + registry/schema-org/CheckInAction.schema.json | 13 + .../schema-org/CheckOutAction.schema.json | 13 + registry/schema-org/CheckoutPage.schema.json | 13 + .../schema-org/ChemicalSubstance.schema.json | 33 + registry/schema-org/ChildCare.schema.json | 13 + .../schema-org/ChildrensEvent.schema.json | 13 + registry/schema-org/ChooseAction.schema.json | 39 + registry/schema-org/Church.schema.json | 13 + registry/schema-org/City.schema.json | 13 + registry/schema-org/CityHall.schema.json | 13 + .../schema-org/CivicStructure.schema.json | 19 + registry/schema-org/Claim.schema.json | 49 + registry/schema-org/ClaimReview.schema.json | 22 + registry/schema-org/Class.schema.json | 37 + registry/schema-org/Clip.schema.json | 81 ++ registry/schema-org/ClothingStore.schema.json | 8 + registry/schema-org/Code.schema.json | 13 + registry/schema-org/Collection.schema.json | 22 + .../schema-org/CollectionPage.schema.json | 13 + .../CollegeOrUniversity.schema.json | 13 + registry/schema-org/ComedyClub.schema.json | 13 + registry/schema-org/ComedyEvent.schema.json | 13 + registry/schema-org/ComicCoverArt.schema.json | 17 + registry/schema-org/ComicIssue.schema.json | 42 + registry/schema-org/ComicSeries.schema.json | 13 + registry/schema-org/ComicStory.schema.json | 35 + registry/schema-org/Comment.schema.json | 34 + registry/schema-org/CommentAction.schema.json | 22 + .../schema-org/CommunicateAction.schema.json | 54 + .../schema-org/CompleteDataFeed.schema.json | 13 + .../CompoundPriceSpecification.schema.json | 45 + .../schema-org/ComputerLanguage.schema.json | 13 + registry/schema-org/ComputerStore.schema.json | 8 + registry/schema-org/ConfirmAction.schema.json | 13 + registry/schema-org/Consortium.schema.json | 13 + .../schema-org/ConstraintNode.schema.json | 42 + registry/schema-org/ConsumeAction.schema.json | 32 + registry/schema-org/ContactPage.schema.json | 13 + registry/schema-org/ContactPoint.schema.json | 75 ++ .../schema-org/ContactPointOption.schema.json | 17 + registry/schema-org/Continent.schema.json | 13 + registry/schema-org/ControlAction.schema.json | 13 + .../schema-org/ConvenienceStore.schema.json | 8 + registry/schema-org/Conversation.schema.json | 13 + registry/schema-org/CookAction.schema.json | 49 + registry/schema-org/Cooperative.schema.json | 13 + registry/schema-org/Corporation.schema.json | 19 + .../schema-org/CorrectionComment.schema.json | 13 + registry/schema-org/Country.schema.json | 13 + registry/schema-org/Course.schema.json | 135 +++ .../schema-org/CourseInstance.schema.json | 37 + registry/schema-org/Courthouse.schema.json | 13 + registry/schema-org/CoverArt.schema.json | 13 + .../CovidTestingFacility.schema.json | 13 + registry/schema-org/CreateAction.schema.json | 13 + registry/schema-org/CreativeWork.schema.json | 966 ++++++++++++++++++ .../schema-org/CreativeWorkSeason.schema.json | 87 ++ .../schema-org/CreativeWorkSeries.schema.json | 37 + registry/schema-org/CreditCard.schema.json | 17 + registry/schema-org/Crematorium.schema.json | 13 + registry/schema-org/CriticReview.schema.json | 13 + .../schema-org/CssSelectorType.schema.json | 8 + .../CurrencyConversionService.schema.json | 13 + registry/schema-org/DDxElement.schema.json | 29 + registry/schema-org/DanceEvent.schema.json | 13 + registry/schema-org/DanceGroup.schema.json | 13 + registry/schema-org/DataCatalog.schema.json | 70 ++ registry/schema-org/DataDownload.schema.json | 63 ++ registry/schema-org/DataFeed.schema.json | 37 + registry/schema-org/DataFeedItem.schema.json | 43 + registry/schema-org/DataType.schema.json | 7 + registry/schema-org/Dataset.schema.json | 109 ++ .../DatedMoneySpecification.schema.json | 37 + registry/schema-org/DayOfWeek.schema.json | 41 + registry/schema-org/DaySpa.schema.json | 13 + .../schema-org/DeactivateAction.schema.json | 13 + .../DefenceEstablishment.schema.json | 13 + registry/schema-org/DefinedRegion.schema.json | 44 + registry/schema-org/DefinedTerm.schema.json | 42 + .../schema-org/DefinedTermSet.schema.json | 22 + registry/schema-org/DeleteAction.schema.json | 13 + .../DeliveryChargeSpecification.schema.json | 44 + registry/schema-org/DeliveryEvent.schema.json | 33 + .../schema-org/DeliveryMethod.schema.json | 21 + registry/schema-org/Demand.schema.json | 225 ++++ registry/schema-org/Dentist.schema.json | 21 + registry/schema-org/DepartAction.schema.json | 13 + .../schema-org/DepartmentStore.schema.json | 8 + .../schema-org/DepositAccount.schema.json | 17 + registry/schema-org/DiagnosticLab.schema.json | 22 + .../DiagnosticProcedure.schema.json | 13 + registry/schema-org/Diet.schema.json | 61 ++ .../schema-org/DietarySupplement.schema.json | 78 ++ .../schema-org/DigitalDocument.schema.json | 25 + .../DigitalDocumentPermission.schema.json | 28 + .../DigitalDocumentPermissionType.schema.json | 21 + .../DigitalPlatformEnumeration.schema.json | 29 + .../schema-org/DisagreeAction.schema.json | 13 + .../schema-org/DiscoverAction.schema.json | 13 + .../DiscussionForumPosting.schema.json | 13 + registry/schema-org/DislikeAction.schema.json | 13 + registry/schema-org/Distance.schema.json | 13 + registry/schema-org/Distillery.schema.json | 13 + registry/schema-org/DonateAction.schema.json | 54 + registry/schema-org/DoseSchedule.schema.json | 34 + .../schema-org/DownloadAction.schema.json | 13 + registry/schema-org/DrawAction.schema.json | 13 + registry/schema-org/Drawing.schema.json | 13 + registry/schema-org/DrinkAction.schema.json | 13 + .../DriveWheelConfigurationValue.schema.json | 13 + registry/schema-org/Drug.schema.json | 175 ++++ registry/schema-org/DrugClass.schema.json | 22 + registry/schema-org/DrugCost.schema.json | 43 + .../schema-org/DrugCostCategory.schema.json | 13 + .../schema-org/DrugLegalStatus.schema.json | 19 + .../DrugPregnancyCategory.schema.json | 13 + .../DrugPrescriptionStatus.schema.json | 13 + registry/schema-org/DrugStrength.schema.json | 38 + .../DryCleaningOrLaundry.schema.json | 13 + registry/schema-org/Duration.schema.json | 13 + .../EUEnergyEfficiencyEnumeration.schema.json | 13 + registry/schema-org/EatAction.schema.json | 13 + .../schema-org/EducationEvent.schema.json | 31 + .../EducationalAudience.schema.json | 22 + ...cationalOccupationalCredential.schema.json | 69 ++ ...EducationalOccupationalProgram.schema.json | 216 ++++ .../EducationalOrganization.schema.json | 26 + registry/schema-org/Electrician.schema.json | 13 + .../schema-org/ElectronicsStore.schema.json | 8 + .../schema-org/ElementarySchool.schema.json | 13 + registry/schema-org/EmailMessage.schema.json | 13 + registry/schema-org/Embassy.schema.json | 13 + .../schema-org/EmergencyService.schema.json | 13 + registry/schema-org/EmployeeRole.schema.json | 27 + .../EmployerAggregateRating.schema.json | 13 + .../schema-org/EmployerReview.schema.json | 13 + .../schema-org/EmploymentAgency.schema.json | 13 + registry/schema-org/EndorseAction.schema.json | 35 + .../schema-org/EndorsementRating.schema.json | 13 + registry/schema-org/Energy.schema.json | 13 + .../EnergyConsumptionDetails.schema.json | 45 + .../EnergyEfficiencyEnumeration.schema.json | 7 + ...tarEnergyEfficiencyEnumeration.schema.json | 13 + .../EngineSpecification.schema.json | 43 + .../EntertainmentBusiness.schema.json | 13 + registry/schema-org/EntryPoint.schema.json | 59 ++ registry/schema-org/Enumeration.schema.json | 37 + registry/schema-org/Episode.schema.json | 84 ++ registry/schema-org/Event.schema.json | 379 +++++++ ...EventAttendanceModeEnumeration.schema.json | 21 + .../schema-org/EventReservation.schema.json | 13 + registry/schema-org/EventSeries.schema.json | 17 + .../schema-org/EventStatusType.schema.json | 13 + registry/schema-org/EventVenue.schema.json | 13 + .../ExchangeRateSpecification.schema.json | 27 + .../schema-org/ExerciseAction.schema.json | 115 +++ registry/schema-org/ExerciseGym.schema.json | 13 + registry/schema-org/ExercisePlan.schema.json | 64 ++ .../schema-org/ExhibitionEvent.schema.json | 13 + registry/schema-org/FAQPage.schema.json | 13 + .../schema-org/FMRadioChannel.schema.json | 13 + .../schema-org/FastFoodRestaurant.schema.json | 13 + registry/schema-org/Festival.schema.json | 13 + registry/schema-org/FilmAction.schema.json | 13 + .../schema-org/FinancialIncentive.schema.json | 122 +++ .../schema-org/FinancialProduct.schema.json | 40 + .../schema-org/FinancialService.schema.json | 32 + registry/schema-org/FindAction.schema.json | 13 + registry/schema-org/FireStation.schema.json | 17 + registry/schema-org/Flight.schema.json | 97 ++ .../schema-org/FlightReservation.schema.json | 31 + registry/schema-org/Float.schema.json | 13 + registry/schema-org/FloorPlan.schema.json | 100 ++ registry/schema-org/Florist.schema.json | 8 + registry/schema-org/FollowAction.schema.json | 35 + .../schema-org/FoodEstablishment.schema.json | 64 ++ .../FoodEstablishmentReservation.schema.json | 49 + registry/schema-org/FoodEvent.schema.json | 13 + registry/schema-org/FoodService.schema.json | 13 + .../FulfillmentTypeEnumeration.schema.json | 29 + registry/schema-org/FundingAgency.schema.json | 13 + registry/schema-org/FundingScheme.schema.json | 13 + .../schema-org/FurnitureStore.schema.json | 8 + registry/schema-org/Game.schema.json | 62 ++ .../GameAvailabilityEnumeration.schema.json | 17 + registry/schema-org/GamePlayMode.schema.json | 21 + registry/schema-org/GameServer.schema.json | 36 + .../schema-org/GameServerStatus.schema.json | 13 + registry/schema-org/GardenStore.schema.json | 8 + registry/schema-org/GasStation.schema.json | 13 + .../GatedResidenceCommunity.schema.json | 13 + registry/schema-org/GenderType.schema.json | 11 + registry/schema-org/Gene.schema.json | 60 ++ .../schema-org/GeneralContractor.schema.json | 13 + registry/schema-org/GeoCircle.schema.json | 44 + .../schema-org/GeoCoordinates.schema.json | 39 + registry/schema-org/GeoShape.schema.json | 59 ++ .../schema-org/GeospatialGeometry.schema.json | 215 ++++ registry/schema-org/GiveAction.schema.json | 39 + registry/schema-org/GolfCourse.schema.json | 13 + .../GovernmentBenefitsType.schema.json | 41 + .../schema-org/GovernmentBuilding.schema.json | 13 + .../schema-org/GovernmentOffice.schema.json | 13 + .../GovernmentOrganization.schema.json | 13 + .../schema-org/GovernmentPermit.schema.json | 13 + .../schema-org/GovernmentService.schema.json | 39 + registry/schema-org/Grant.schema.json | 85 ++ registry/schema-org/GroceryStore.schema.json | 8 + registry/schema-org/Guide.schema.json | 22 + registry/schema-org/HVACBusiness.schema.json | 13 + registry/schema-org/Hackathon.schema.json | 13 + registry/schema-org/HairSalon.schema.json | 13 + registry/schema-org/HardwareStore.schema.json | 8 + .../HealthAndBeautyBusiness.schema.json | 13 + .../HealthAspectEnumeration.schema.json | 125 +++ registry/schema-org/HealthClub.schema.json | 17 + .../HealthInsurancePlan.schema.json | 65 ++ ...thPlanCostSharingSpecification.schema.json | 41 + .../HealthPlanFormulary.schema.json | 27 + .../schema-org/HealthPlanNetwork.schema.json | 30 + .../schema-org/HealthTopicContent.schema.json | 25 + registry/schema-org/HighSchool.schema.json | 13 + registry/schema-org/HinduTemple.schema.json | 13 + registry/schema-org/HobbyShop.schema.json | 8 + .../HomeAndConstructionBusiness.schema.json | 13 + .../schema-org/HomeGoodsStore.schema.json | 8 + registry/schema-org/Hospital.schema.json | 72 ++ registry/schema-org/Hostel.schema.json | 13 + registry/schema-org/Hotel.schema.json | 13 + registry/schema-org/HotelRoom.schema.json | 27 + registry/schema-org/House.schema.json | 19 + registry/schema-org/HousePainter.schema.json | 13 + registry/schema-org/HowTo.schema.json | 108 ++ .../schema-org/HowToDirection.schema.json | 118 +++ registry/schema-org/HowToItem.schema.json | 23 + registry/schema-org/HowToSection.schema.json | 45 + registry/schema-org/HowToStep.schema.json | 21 + registry/schema-org/HowToSupply.schema.json | 19 + registry/schema-org/HowToTip.schema.json | 17 + registry/schema-org/HowToTool.schema.json | 13 + registry/schema-org/HyperToc.schema.json | 26 + registry/schema-org/HyperTocEntry.schema.json | 33 + .../IPTCDigitalSourceEnumeration.schema.json | 13 + registry/schema-org/IceCreamShop.schema.json | 13 + registry/schema-org/IgnoreAction.schema.json | 13 + registry/schema-org/ImageGallery.schema.json | 13 + registry/schema-org/ImageObject.json | 38 - registry/schema-org/ImageObject.schema.json | 34 + .../ImageObjectSnapshot.schema.json | 8 + registry/schema-org/ImagingTest.schema.json | 25 + .../IncentiveQualifiedExpenseType.schema.json | 25 + .../schema-org/IncentiveStatus.schema.json | 25 + registry/schema-org/IncentiveType.schema.json | 29 + .../IndividualPhysician.schema.json | 22 + .../schema-org/IndividualProduct.schema.json | 19 + .../InfectiousAgentClass.schema.json | 13 + .../schema-org/InfectiousDisease.schema.json | 30 + registry/schema-org/InformAction.schema.json | 22 + registry/schema-org/InsertAction.schema.json | 22 + registry/schema-org/InstallAction.schema.json | 13 + .../schema-org/InsuranceAgency.schema.json | 13 + registry/schema-org/Intangible.schema.json | 10 + registry/schema-org/Integer.schema.json | 13 + .../schema-org/InteractAction.schema.json | 13 + .../schema-org/InteractionCounter.schema.json | 53 + registry/schema-org/InternetCafe.schema.json | 13 + .../schema-org/InvestmentFund.schema.json | 13 + .../InvestmentOrDeposit.schema.json | 19 + registry/schema-org/InviteAction.schema.json | 22 + registry/schema-org/Invoice.schema.json | 132 +++ .../schema-org/ItemAvailability.schema.json | 57 ++ registry/schema-org/ItemList.schema.json | 52 + .../schema-org/ItemListOrderType.schema.json | 21 + registry/schema-org/ItemPage.schema.json | 13 + registry/schema-org/JewelryStore.schema.json | 8 + registry/schema-org/JobPosting.schema.json | 308 ++++++ registry/schema-org/JoinAction.schema.json | 22 + registry/schema-org/Joint.schema.json | 27 + .../schema-org/LakeBodyOfWater.schema.json | 13 + registry/schema-org/Landform.schema.json | 13 + ...LandmarksOrHistoricalBuildings.schema.json | 13 + registry/schema-org/Language.schema.json | 13 + .../schema-org/LearningResource.schema.json | 68 ++ registry/schema-org/LeaveAction.schema.json | 22 + .../schema-org/LegalForceStatus.schema.json | 13 + registry/schema-org/LegalService.schema.json | 13 + .../schema-org/LegalValueLevel.schema.json | 25 + registry/schema-org/Legislation.schema.json | 173 ++++ .../schema-org/LegislationObject.schema.json | 23 + .../LegislativeBuilding.schema.json | 13 + registry/schema-org/LendAction.schema.json | 22 + registry/schema-org/Library.schema.json | 13 + registry/schema-org/LibrarySystem.schema.json | 13 + .../LifestyleModification.schema.json | 13 + registry/schema-org/Ligament.schema.json | 13 + registry/schema-org/LikeAction.schema.json | 13 + registry/schema-org/LinkRole.schema.json | 26 + registry/schema-org/LiquorStore.schema.json | 8 + registry/schema-org/ListItem.schema.json | 40 + registry/schema-org/ListenAction.schema.json | 13 + registry/schema-org/LiteraryEvent.schema.json | 13 + .../schema-org/LiveBlogPosting.schema.json | 27 + registry/schema-org/LoanOrCredit.schema.json | 66 ++ registry/schema-org/LocalBusiness.schema.json | 42 + .../LocationFeatureSpecification.schema.json | 33 + registry/schema-org/Locksmith.schema.json | 13 + .../schema-org/LodgingBusiness.schema.json | 70 ++ .../schema-org/LodgingReservation.schema.json | 61 ++ registry/schema-org/LoseAction.schema.json | 22 + .../schema-org/LymphaticVessel.schema.json | 30 + registry/schema-org/Manuscript.schema.json | 13 + registry/schema-org/Map.schema.json | 22 + .../schema-org/MapCategoryType.schema.json | 16 + registry/schema-org/MarryAction.schema.json | 13 + registry/schema-org/Mass.schema.json | 13 + registry/schema-org/MathSolver.schema.json | 32 + .../MaximumDoseSchedule.schema.json | 13 + .../MeasurementMethodEnum.schema.json | 13 + .../MeasurementTypeEnumeration.schema.json | 7 + .../schema-org/MediaEnumeration.schema.json | 7 + registry/schema-org/MediaGallery.schema.json | 13 + ...aManipulationRatingEnumeration.schema.json | 33 + registry/schema-org/MediaObject.schema.json | 128 +++ registry/schema-org/MediaReview.schema.json | 54 + .../schema-org/MediaReviewItem.schema.json | 22 + .../schema-org/MediaSubscription.schema.json | 26 + .../schema-org/MedicalAudience.schema.json | 17 + .../MedicalAudienceType.schema.json | 13 + .../schema-org/MedicalBusiness.schema.json | 13 + registry/schema-org/MedicalCause.schema.json | 19 + registry/schema-org/MedicalClinic.schema.json | 48 + registry/schema-org/MedicalCode.schema.json | 24 + .../schema-org/MedicalCondition.schema.json | 117 +++ .../MedicalConditionStage.schema.json | 23 + .../MedicalContraindication.schema.json | 13 + registry/schema-org/MedicalDevice.schema.json | 70 ++ .../MedicalDevicePurpose.schema.json | 13 + registry/schema-org/MedicalEntity.schema.json | 66 ++ .../schema-org/MedicalEnumeration.schema.json | 7 + .../MedicalEvidenceLevel.schema.json | 13 + .../schema-org/MedicalGuideline.schema.json | 32 + ...dicalGuidelineContraindication.schema.json | 13 + ...MedicalGuidelineRecommendation.schema.json | 22 + .../MedicalImagingTechnique.schema.json | 13 + .../schema-org/MedicalIndication.schema.json | 13 + .../schema-org/MedicalIntangible.schema.json | 13 + .../MedicalObservationalStudy.schema.json | 19 + ...edicalObservationalStudyDesign.schema.json | 13 + .../MedicalOrganization.schema.json | 33 + .../schema-org/MedicalProcedure.schema.json | 43 + .../MedicalProcedureType.schema.json | 13 + .../MedicalRiskCalculator.schema.json | 13 + .../MedicalRiskEstimator.schema.json | 26 + .../schema-org/MedicalRiskFactor.schema.json | 19 + .../schema-org/MedicalRiskScore.schema.json | 19 + .../MedicalScholarlyArticle.schema.json | 16 + registry/schema-org/MedicalSign.schema.json | 29 + .../MedicalSignOrSymptom.schema.json | 22 + .../schema-org/MedicalSpecialty.schema.json | 17 + registry/schema-org/MedicalStudy.schema.json | 58 ++ .../schema-org/MedicalStudyStatus.schema.json | 13 + .../schema-org/MedicalSymptom.schema.json | 13 + registry/schema-org/MedicalTest.schema.json | 47 + .../schema-org/MedicalTestPanel.schema.json | 22 + .../schema-org/MedicalTherapy.schema.json | 49 + registry/schema-org/MedicalTrial.schema.json | 19 + .../schema-org/MedicalTrialDesign.schema.json | 13 + .../schema-org/MedicalWebPage.schema.json | 42 + .../schema-org/MedicineSystem.schema.json | 13 + registry/schema-org/MeetingRoom.schema.json | 13 + registry/schema-org/MemberProgram.schema.json | 23 + .../schema-org/MemberProgramTier.schema.json | 57 ++ .../schema-org/MensClothingStore.schema.json | 8 + registry/schema-org/Menu.schema.json | 29 + registry/schema-org/MenuItem.schema.json | 58 ++ registry/schema-org/MenuSection.schema.json | 29 + .../MerchantReturnEnumeration.schema.json | 25 + .../MerchantReturnPolicy.schema.json | 169 +++ ...ntReturnPolicySeasonalOverride.schema.json | 97 ++ registry/schema-org/Message.schema.json | 153 +++ registry/schema-org/MiddleSchool.schema.json | 13 + .../schema-org/MobileApplication.schema.json | 19 + .../schema-org/MobilePhoneStore.schema.json | 8 + .../schema-org/MolecularEntity.schema.json | 85 ++ .../schema-org/MonetaryAmount.schema.json | 50 + .../MonetaryAmountDistribution.schema.json | 19 + registry/schema-org/MonetaryGrant.schema.json | 39 + registry/schema-org/MoneyTransfer.schema.json | 39 + registry/schema-org/MortgageLoan.schema.json | 26 + registry/schema-org/Mosque.schema.json | 13 + registry/schema-org/Motel.schema.json | 13 + registry/schema-org/Motorcycle.schema.json | 13 + .../schema-org/MotorcycleDealer.schema.json | 13 + .../schema-org/MotorcycleRepair.schema.json | 13 + .../schema-org/MotorizedBicycle.schema.json | 13 + registry/schema-org/Mountain.schema.json | 13 + registry/schema-org/MoveAction.schema.json | 29 + registry/schema-org/Movie.schema.json | 105 ++ registry/schema-org/MovieClip.schema.json | 13 + .../schema-org/MovieRentalStore.schema.json | 8 + registry/schema-org/MovieSeries.schema.json | 65 ++ registry/schema-org/MovieTheater.schema.json | 23 + registry/schema-org/MovingCompany.schema.json | 13 + registry/schema-org/Muscle.schema.json | 35 + registry/schema-org/Museum.schema.json | 13 + registry/schema-org/MusicAlbum.schema.json | 40 + .../MusicAlbumProductionType.schema.json | 18 + .../MusicAlbumReleaseType.schema.json | 13 + .../schema-org/MusicComposition.schema.json | 64 ++ registry/schema-org/MusicEvent.schema.json | 13 + registry/schema-org/MusicGroup.schema.json | 67 ++ registry/schema-org/MusicPlaylist.schema.json | 46 + .../schema-org/MusicRecording.schema.json | 42 + registry/schema-org/MusicRelease.schema.json | 48 + .../MusicReleaseFormatType.schema.json | 19 + registry/schema-org/MusicStore.schema.json | 8 + registry/schema-org/MusicVenue.schema.json | 13 + .../schema-org/MusicVideoObject.schema.json | 13 + registry/schema-org/NGO.schema.json | 13 + .../schema-org/NLNonprofitType.schema.json | 13 + registry/schema-org/NailSalon.schema.json | 13 + registry/schema-org/Nerve.schema.json | 34 + registry/schema-org/NewsArticle.schema.json | 35 + .../NewsMediaOrganization.schema.json | 239 +++++ registry/schema-org/Newspaper.schema.json | 13 + registry/schema-org/NightClub.schema.json | 13 + registry/schema-org/NonprofitType.schema.json | 7 + registry/schema-org/Notary.schema.json | 13 + .../NoteDigitalDocument.schema.json | 13 + .../NutritionInformation.schema.json | 74 ++ registry/schema-org/Observation.schema.json | 114 +++ registry/schema-org/Occupation.schema.json | 106 ++ ...pationalExperienceRequirements.schema.json | 22 + .../OccupationalTherapy.schema.json | 13 + .../schema-org/OceanBodyOfWater.schema.json | 13 + registry/schema-org/Offer.schema.json | 391 +++++++ registry/schema-org/OfferCatalog.schema.json | 13 + registry/schema-org/OfferForLease.schema.json | 13 + .../schema-org/OfferForPurchase.schema.json | 13 + .../schema-org/OfferItemCondition.schema.json | 25 + .../OfferShippingDetails.schema.json | 83 ++ .../OfficeEquipmentStore.schema.json | 8 + registry/schema-org/OnDemandEvent.schema.json | 13 + .../schema-org/OnlineBusiness.schema.json | 13 + registry/schema-org/OnlineStore.schema.json | 13 + .../OpeningHoursSpecification.schema.json | 43 + .../schema-org/OpinionNewsArticle.schema.json | 13 + registry/schema-org/Optician.schema.json | 13 + registry/schema-org/Order.schema.json | 151 +++ registry/schema-org/OrderAction.schema.json | 22 + registry/schema-org/OrderItem.schema.json | 53 + registry/schema-org/OrderStatus.schema.json | 13 + registry/schema-org/Organization.schema.json | 711 +++++++++++++ .../schema-org/OrganizationRole.schema.json | 22 + .../schema-org/OrganizeAction.schema.json | 13 + registry/schema-org/OutletStore.schema.json | 8 + registry/schema-org/OwnershipInfo.schema.json | 33 + registry/schema-org/PaintAction.schema.json | 13 + registry/schema-org/Painting.schema.json | 13 + .../PalliativeProcedure.schema.json | 17 + .../schema-org/ParcelDelivery.schema.json | 76 ++ .../schema-org/ParentAudience.schema.json | 23 + registry/schema-org/Park.schema.json | 13 + .../schema-org/ParkingFacility.schema.json | 13 + registry/schema-org/PathologyTest.schema.json | 19 + registry/schema-org/Patient.schema.json | 37 + registry/schema-org/PawnShop.schema.json | 8 + registry/schema-org/PayAction.schema.json | 39 + registry/schema-org/PaymentCard.schema.json | 44 + .../PaymentChargeSpecification.schema.json | 23 + registry/schema-org/PaymentMethod.schema.json | 19 + .../schema-org/PaymentMethodType.schema.json | 41 + .../schema-org/PaymentService.schema.json | 17 + .../schema-org/PaymentStatusType.schema.json | 13 + .../schema-org/PeopleAudience.schema.json | 54 + registry/schema-org/PerformAction.schema.json | 22 + .../schema-org/PerformanceRole.schema.json | 19 + .../PerformingArtsTheater.schema.json | 13 + .../schema-org/PerformingGroup.schema.json | 13 + registry/schema-org/Periodical.schema.json | 13 + registry/schema-org/Permit.schema.json | 48 + registry/schema-org/Person.schema.json | 557 ++++++++++ registry/schema-org/PetStore.schema.json | 8 + registry/schema-org/Pharmacy.schema.json | 17 + registry/schema-org/Photograph.schema.json | 13 + .../schema-org/PhotographAction.schema.json | 13 + .../schema-org/PhysicalActivity.schema.json | 60 ++ .../PhysicalActivityCategory.schema.json | 37 + registry/schema-org/PhysicalExam.schema.json | 17 + .../schema-org/PhysicalTherapy.schema.json | 13 + registry/schema-org/Physician.schema.json | 74 ++ .../schema-org/PhysiciansOffice.schema.json | 13 + registry/schema-org/Place.schema.json | 465 +++++++++ .../schema-org/PlaceOfWorship.schema.json | 13 + registry/schema-org/PlanAction.schema.json | 22 + registry/schema-org/Play.schema.json | 13 + registry/schema-org/PlayAction.schema.json | 26 + .../schema-org/PlayGameAction.schema.json | 35 + registry/schema-org/Playground.schema.json | 13 + registry/schema-org/Plumber.schema.json | 13 + .../schema-org/PodcastEpisode.schema.json | 13 + registry/schema-org/PodcastSeason.schema.json | 13 + registry/schema-org/PodcastSeries.schema.json | 42 + registry/schema-org/PoliceStation.schema.json | 17 + .../schema-org/PoliticalParty.schema.json | 13 + registry/schema-org/Pond.schema.json | 13 + registry/schema-org/PostOffice.schema.json | 13 + registry/schema-org/PostalAddress.schema.json | 46 + .../PostalCodeRangeSpecification.schema.json | 29 + registry/schema-org/Poster.schema.json | 13 + .../schema-org/PreOrderAction.schema.json | 13 + registry/schema-org/PrependAction.schema.json | 13 + registry/schema-org/Preschool.schema.json | 13 + .../PresentationDigitalDocument.schema.json | 13 + .../PreventionIndication.schema.json | 13 + .../PriceComponentTypeEnumeration.schema.json | 33 + .../schema-org/PriceSpecification.schema.json | 65 ++ .../PriceTypeEnumeration.schema.json | 41 + registry/schema-org/Product.schema.json | 534 ++++++++++ .../schema-org/ProductCollection.schema.json | 26 + registry/schema-org/ProductGroup.schema.json | 41 + registry/schema-org/ProductModel.schema.json | 49 + .../ProfessionalService.schema.json | 13 + registry/schema-org/ProfilePage.schema.json | 13 + .../schema-org/ProgramMembership.schema.json | 78 ++ registry/schema-org/Project.schema.json | 13 + .../schema-org/PronounceableText.schema.json | 35 + registry/schema-org/Property.schema.json | 58 ++ registry/schema-org/PropertyValue.schema.json | 140 +++ .../PropertyValueSpecification.schema.json | 71 ++ registry/schema-org/Protein.schema.json | 22 + .../PsychologicalTreatment.schema.json | 13 + .../schema-org/PublicSwimmingPool.schema.json | 13 + registry/schema-org/PublicToilet.schema.json | 13 + .../schema-org/PublicationEvent.schema.json | 46 + .../schema-org/PublicationIssue.schema.json | 40 + .../schema-org/PublicationVolume.schema.json | 40 + registry/schema-org/PurchaseType.schema.json | 25 + registry/schema-org/QAPage.schema.json | 13 + .../schema-org/QualitativeValue.schema.json | 90 ++ .../schema-org/QuantitativeValue.schema.json | 82 ++ .../QuantitativeValueDistribution.schema.json | 39 + registry/schema-org/Quantity.schema.json | 13 + registry/schema-org/Question.schema.json | 51 + registry/schema-org/Quiz.schema.json | 13 + registry/schema-org/Quotation.schema.json | 19 + registry/schema-org/QuoteAction.schema.json | 13 + registry/schema-org/RVPark.schema.json | 13 + .../schema-org/RadiationTherapy.schema.json | 13 + .../RadioBroadcastService.schema.json | 13 + registry/schema-org/RadioChannel.schema.json | 13 + registry/schema-org/RadioClip.schema.json | 13 + registry/schema-org/RadioEpisode.schema.json | 13 + registry/schema-org/RadioSeason.schema.json | 13 + registry/schema-org/RadioSeries.schema.json | 121 +++ registry/schema-org/RadioStation.schema.json | 13 + registry/schema-org/Rating.schema.json | 45 + registry/schema-org/ReactAction.schema.json | 13 + registry/schema-org/ReadAction.schema.json | 13 + .../schema-org/RealEstateAgent.schema.json | 13 + .../schema-org/RealEstateListing.schema.json | 42 + registry/schema-org/ReceiveAction.schema.json | 44 + registry/schema-org/Recipe.json | 103 -- registry/schema-org/Recipe.schema.json | 69 ++ .../schema-org/Recommendation.schema.json | 41 + .../RecommendedDoseSchedule.schema.json | 13 + .../schema-org/RecyclingCenter.schema.json | 13 + .../RefundTypeEnumeration.schema.json | 21 + .../schema-org/RegisterAction.schema.json | 13 + registry/schema-org/RejectAction.schema.json | 13 + registry/schema-org/RentAction.schema.json | 42 + .../RentalCarReservation.schema.json | 49 + .../RepaymentSpecification.schema.json | 48 + registry/schema-org/ReplaceAction.schema.json | 29 + registry/schema-org/ReplyAction.schema.json | 22 + registry/schema-org/Report.schema.json | 19 + .../ReportageNewsArticle.schema.json | 13 + .../ReportedDoseSchedule.schema.json | 13 + .../ResearchOrganization.schema.json | 13 + .../schema-org/ResearchProject.schema.json | 13 + registry/schema-org/Researcher.schema.json | 13 + registry/schema-org/Reservation.schema.json | 114 +++ .../schema-org/ReservationPackage.schema.json | 19 + .../ReservationStatusType.schema.json | 13 + registry/schema-org/ReserveAction.schema.json | 13 + registry/schema-org/Reservoir.schema.json | 13 + registry/schema-org/Residence.schema.json | 22 + registry/schema-org/Resort.schema.json | 13 + registry/schema-org/Restaurant.schema.json | 13 + .../schema-org/RestrictedDiet.schema.json | 50 + registry/schema-org/ResumeAction.schema.json | 13 + registry/schema-org/ReturnAction.schema.json | 39 + .../ReturnFeesEnumeration.schema.json | 29 + .../ReturnLabelSourceEnumeration.schema.json | 21 + .../ReturnMethodEnumeration.schema.json | 25 + registry/schema-org/Review.schema.json | 103 ++ registry/schema-org/ReviewAction.schema.json | 22 + .../schema-org/ReviewNewsArticle.schema.json | 17 + .../schema-org/RiverBodyOfWater.schema.json | 13 + registry/schema-org/Role.schema.json | 63 ++ .../schema-org/RoofingContractor.schema.json | 13 + registry/schema-org/Room.schema.json | 13 + registry/schema-org/RsvpAction.schema.json | 33 + .../schema-org/RsvpResponseType.schema.json | 18 + registry/schema-org/SaleEvent.schema.json | 13 + .../schema-org/SatiricalArticle.schema.json | 13 + registry/schema-org/Schedule.schema.json | 137 +++ .../schema-org/ScheduleAction.schema.json | 13 + .../schema-org/ScholarlyArticle.schema.json | 13 + registry/schema-org/School.schema.json | 13 + .../schema-org/SchoolDistrict.schema.json | 13 + .../schema-org/ScreeningEvent.schema.json | 35 + registry/schema-org/Sculpture.schema.json | 13 + .../schema-org/SeaBodyOfWater.schema.json | 13 + registry/schema-org/SearchAction.schema.json | 22 + .../SearchRescueOrganization.schema.json | 13 + .../schema-org/SearchResultsPage.schema.json | 13 + registry/schema-org/Season.schema.json | 13 + registry/schema-org/Seat.schema.json | 31 + registry/schema-org/SeekToAction.schema.json | 19 + registry/schema-org/SelfStorage.schema.json | 13 + registry/schema-org/SellAction.schema.json | 39 + registry/schema-org/SendAction.schema.json | 46 + registry/schema-org/Series.schema.json | 13 + registry/schema-org/Service.schema.json | 249 +++++ .../schema-org/ServiceChannel.schema.json | 57 ++ registry/schema-org/ServicePeriod.schema.json | 49 + registry/schema-org/ShareAction.schema.json | 13 + registry/schema-org/SheetMusic.schema.json | 13 + .../schema-org/ShippingConditions.schema.json | 99 ++ .../ShippingDeliveryTime.schema.json | 56 + .../ShippingRateSettings.schema.json | 71 ++ .../schema-org/ShippingService.schema.json | 40 + registry/schema-org/ShoeStore.schema.json | 8 + .../schema-org/ShoppingCenter.schema.json | 13 + registry/schema-org/ShortStory.schema.json | 13 + .../SingleFamilyResidence.schema.json | 23 + .../SiteNavigationElement.schema.json | 13 + .../SizeGroupEnumeration.schema.json | 7 + .../schema-org/SizeSpecification.schema.json | 48 + .../SizeSystemEnumeration.schema.json | 11 + registry/schema-org/SkiResort.schema.json | 17 + registry/schema-org/SocialEvent.schema.json | 13 + .../schema-org/SocialMediaPosting.schema.json | 22 + .../SoftwareApplication.schema.json | 192 ++++ .../schema-org/SoftwareSourceCode.schema.json | 68 ++ .../schema-org/SolveMathAction.schema.json | 22 + registry/schema-org/SomeProducts.schema.json | 19 + .../SpeakableSpecification.schema.json | 23 + .../SpecialAnnouncement.schema.json | 246 +++++ registry/schema-org/Specialty.schema.json | 7 + .../schema-org/SportingGoodsStore.schema.json | 8 + .../SportsActivityLocation.schema.json | 13 + registry/schema-org/SportsClub.schema.json | 13 + registry/schema-org/SportsEvent.schema.json | 67 ++ .../schema-org/SportsOrganization.schema.json | 32 + registry/schema-org/SportsTeam.schema.json | 33 + .../SpreadsheetDigitalDocument.schema.json | 13 + .../schema-org/StadiumOrArena.schema.json | 17 + registry/schema-org/State.schema.json | 13 + registry/schema-org/Statement.schema.json | 13 + .../StatisticalPopulation.schema.json | 22 + .../StatisticalVariable.schema.json | 110 ++ .../schema-org/StatusEnumeration.schema.json | 7 + .../SteeringPositionValue.schema.json | 13 + registry/schema-org/Store.schema.json | 13 + .../schema-org/StructuredValue.schema.json | 13 + .../schema-org/SubscribeAction.schema.json | 13 + registry/schema-org/Substance.schema.json | 26 + registry/schema-org/SubwayStation.schema.json | 13 + registry/schema-org/Suite.schema.json | 31 + .../schema-org/SuperficialAnatomy.schema.json | 57 ++ .../schema-org/SurgicalProcedure.schema.json | 13 + registry/schema-org/SuspendAction.schema.json | 13 + registry/schema-org/Syllabus.schema.json | 13 + registry/schema-org/Synagogue.schema.json | 13 + registry/schema-org/TVClip.schema.json | 19 + registry/schema-org/TVEpisode.schema.json | 52 + registry/schema-org/TVSeason.schema.json | 44 + registry/schema-org/TVSeries.schema.json | 146 +++ registry/schema-org/Table.schema.json | 13 + registry/schema-org/TakeAction.schema.json | 13 + registry/schema-org/TattooParlor.schema.json | 13 + registry/schema-org/Taxi.schema.json | 13 + .../schema-org/TaxiReservation.schema.json | 52 + registry/schema-org/TaxiService.schema.json | 13 + registry/schema-org/TaxiStand.schema.json | 13 + registry/schema-org/Taxon.schema.json | 71 ++ registry/schema-org/TechArticle.schema.json | 23 + .../schema-org/TelevisionChannel.schema.json | 13 + .../schema-org/TelevisionStation.schema.json | 13 + registry/schema-org/TennisComplex.schema.json | 13 + .../TextDigitalDocument.schema.json | 13 + registry/schema-org/TextObject.schema.json | 13 + registry/schema-org/TheaterEvent.schema.json | 13 + registry/schema-org/TheaterGroup.schema.json | 13 + .../TherapeuticProcedure.schema.json | 36 + registry/schema-org/Thesis.schema.json | 22 + registry/schema-org/Thing.schema.json | 142 +++ registry/schema-org/Ticket.schema.json | 67 ++ registry/schema-org/TieAction.schema.json | 13 + .../TierBenefitEnumeration.schema.json | 25 + registry/schema-org/TipAction.schema.json | 39 + registry/schema-org/TireShop.schema.json | 8 + .../schema-org/TouristAttraction.schema.json | 39 + .../schema-org/TouristDestination.schema.json | 34 + .../TouristInformationCenter.schema.json | 13 + registry/schema-org/TouristTrip.schema.json | 27 + registry/schema-org/ToyStore.schema.json | 8 + registry/schema-org/TrackAction.schema.json | 22 + registry/schema-org/TradeAction.schema.json | 30 + .../schema-org/TrainReservation.schema.json | 13 + registry/schema-org/TrainStation.schema.json | 13 + registry/schema-org/TrainTrip.schema.json | 39 + .../schema-org/TransferAction.schema.json | 29 + registry/schema-org/TravelAction.schema.json | 28 + registry/schema-org/TravelAgency.schema.json | 13 + .../TreatmentIndication.schema.json | 13 + registry/schema-org/Trip.schema.json | 77 ++ .../TypeAndQuantityNode.schema.json | 38 + .../schema-org/UKNonprofitType.schema.json | 13 + registry/schema-org/URL.schema.json | 8 + .../schema-org/USNonprofitType.schema.json | 13 + .../schema-org/UnRegisterAction.schema.json | 13 + .../UnitPriceSpecification.schema.json | 93 ++ registry/schema-org/UpdateAction.schema.json | 29 + registry/schema-org/Url.json | 12 - registry/schema-org/UseAction.schema.json | 13 + registry/schema-org/UserBlocks.schema.json | 13 + registry/schema-org/UserCheckins.schema.json | 13 + registry/schema-org/UserComments.schema.json | 39 + registry/schema-org/UserDownloads.schema.json | 13 + .../schema-org/UserInteraction.schema.json | 13 + registry/schema-org/UserLikes.schema.json | 13 + .../schema-org/UserPageVisits.schema.json | 13 + registry/schema-org/UserPlays.schema.json | 13 + registry/schema-org/UserPlusOnes.schema.json | 13 + registry/schema-org/UserReview.schema.json | 13 + registry/schema-org/UserTweets.schema.json | 13 + .../schema-org/VacationRental.schema.json | 13 + registry/schema-org/Vehicle.schema.json | 243 +++++ registry/schema-org/Vein.schema.json | 30 + registry/schema-org/Vessel.schema.json | 13 + .../schema-org/VeterinaryCare.schema.json | 13 + registry/schema-org/VideoGallery.schema.json | 13 + registry/schema-org/VideoGame.schema.json | 102 ++ registry/schema-org/VideoGameClip.schema.json | 13 + .../schema-org/VideoGameSeries.schema.json | 190 ++++ registry/schema-org/VideoObject.schema.json | 80 ++ .../VideoObjectSnapshot.schema.json | 8 + registry/schema-org/ViewAction.schema.json | 13 + .../schema-org/VirtualLocation.schema.json | 13 + .../schema-org/VisualArtsEvent.schema.json | 13 + registry/schema-org/VisualArtwork.schema.json | 109 ++ registry/schema-org/VitalSign.schema.json | 13 + registry/schema-org/Volcano.schema.json | 13 + registry/schema-org/VoteAction.schema.json | 22 + registry/schema-org/WPAdBlock.schema.json | 13 + registry/schema-org/WPFooter.schema.json | 13 + registry/schema-org/WPHeader.schema.json | 13 + registry/schema-org/WPSideBar.schema.json | 13 + registry/schema-org/WantAction.schema.json | 13 + .../schema-org/WarrantyPromise.schema.json | 23 + registry/schema-org/WarrantyScope.schema.json | 7 + registry/schema-org/WatchAction.schema.json | 13 + registry/schema-org/Waterfall.schema.json | 13 + registry/schema-org/WearAction.schema.json | 13 + ...ableMeasurementTypeEnumeration.schema.json | 13 + .../WearableSizeGroupEnumeration.schema.json | 13 + .../WearableSizeSystemEnumeration.schema.json | 13 + registry/schema-org/WebAPI.schema.json | 35 + .../schema-org/WebApplication.schema.json | 19 + registry/schema-org/WebContent.schema.json | 13 + registry/schema-org/WebPage.schema.json | 108 ++ .../schema-org/WebPageElement.schema.json | 23 + registry/schema-org/WebSite.schema.json | 19 + .../schema-org/WholesaleStore.schema.json | 8 + registry/schema-org/WinAction.schema.json | 22 + registry/schema-org/Winery.schema.json | 13 + .../schema-org/WorkBasedProgram.schema.json | 31 + registry/schema-org/WorkersUnion.schema.json | 13 + registry/schema-org/WriteAction.schema.json | 26 + registry/schema-org/XPathType.schema.json | 8 + registry/schema-org/Zoo.schema.json | 13 + registry/schemas.go | 118 +++ registry/templates.go | 25 + .../templates/{recipe.marka => Recipe.marka} | 13 +- registry/templates/_default.marka | 10 + registry/templates_test.go | 38 + template/blocks.go | 176 ++++ {parser/blocks => template}/codecs.go | 2 +- template/compile.go | 75 ++ template/compile_test.go | 100 ++ template/go.mod | 5 + template/go.sum | 2 + template/structs.go | 30 + 958 files changed, 32279 insertions(+), 704 deletions(-) create mode 100644 go.work.sum delete mode 100644 parser/blocks.go delete mode 100644 parser/blocks/block_list.go delete mode 100644 parser/blocks/block_yaml.go delete mode 100644 parser/blocks/blocks.go delete mode 100644 parser/blocks/template.go delete mode 100644 parser/blocks_test.go create mode 100644 parser/decoders/decoder.go create mode 100644 parser/decoders/decoder_test.go create mode 100644 parser/decoders/list.go create mode 100644 parser/decoders/list_test.go create mode 100644 parser/decoders/yaml.go rename parser/{ => matcher}/matcher.go (62%) rename parser/{ => matcher}/matcher_test.go (69%) delete mode 100644 parser/parser.go delete mode 100644 parser/parser_test.go create mode 100644 parser/utils/math.go rename parser/{testutils_test.go => utils/read_test_data.go} (57%) create mode 100644 parser/utils/set_path_value.go create mode 100644 parser/utils/set_path_value_test.go create mode 100644 registry/go.sum delete mode 100644 registry/registry.go create mode 100644 registry/schema-org/3DModel.schema.json create mode 100644 registry/schema-org/AMRadioChannel.schema.json create mode 100644 registry/schema-org/APIReference.schema.json create mode 100644 registry/schema-org/AboutPage.schema.json create mode 100644 registry/schema-org/AcceptAction.schema.json create mode 100644 registry/schema-org/Accommodation.schema.json create mode 100644 registry/schema-org/AccountingService.schema.json create mode 100644 registry/schema-org/AchieveAction.schema.json create mode 100644 registry/schema-org/Action.schema.json create mode 100644 registry/schema-org/ActionAccessSpecification.schema.json create mode 100644 registry/schema-org/ActionStatusType.schema.json create mode 100644 registry/schema-org/ActivateAction.schema.json create mode 100644 registry/schema-org/AddAction.schema.json create mode 100644 registry/schema-org/AdministrativeArea.schema.json create mode 100644 registry/schema-org/AdultEntertainment.schema.json create mode 100644 registry/schema-org/AdultOrientedEnumeration.schema.json create mode 100644 registry/schema-org/AdvertiserContentArticle.schema.json create mode 100644 registry/schema-org/AggregateOffer.schema.json create mode 100644 registry/schema-org/AggregateRating.schema.json create mode 100644 registry/schema-org/AgreeAction.schema.json create mode 100644 registry/schema-org/Airline.schema.json create mode 100644 registry/schema-org/Airport.schema.json create mode 100644 registry/schema-org/AlignmentObject.schema.json create mode 100644 registry/schema-org/AllocateAction.schema.json create mode 100644 registry/schema-org/AmpStory.schema.json create mode 100644 registry/schema-org/AmusementPark.schema.json create mode 100644 registry/schema-org/AnalysisNewsArticle.schema.json create mode 100644 registry/schema-org/AnatomicalStructure.schema.json create mode 100644 registry/schema-org/AnatomicalSystem.schema.json create mode 100644 registry/schema-org/AnimalShelter.schema.json create mode 100644 registry/schema-org/Answer.schema.json create mode 100644 registry/schema-org/Apartment.schema.json create mode 100644 registry/schema-org/ApartmentComplex.schema.json create mode 100644 registry/schema-org/AppendAction.schema.json create mode 100644 registry/schema-org/ApplyAction.schema.json create mode 100644 registry/schema-org/ApprovedIndication.schema.json create mode 100644 registry/schema-org/Aquarium.schema.json create mode 100644 registry/schema-org/ArchiveComponent.schema.json create mode 100644 registry/schema-org/ArchiveOrganization.schema.json create mode 100644 registry/schema-org/ArriveAction.schema.json create mode 100644 registry/schema-org/ArtGallery.schema.json create mode 100644 registry/schema-org/Artery.schema.json create mode 100644 registry/schema-org/Article.schema.json create mode 100644 registry/schema-org/AskAction.schema.json create mode 100644 registry/schema-org/AskPublicNewsArticle.schema.json create mode 100644 registry/schema-org/AssessAction.schema.json create mode 100644 registry/schema-org/AssignAction.schema.json create mode 100644 registry/schema-org/Atlas.schema.json create mode 100644 registry/schema-org/Attorney.schema.json create mode 100644 registry/schema-org/Audience.schema.json create mode 100644 registry/schema-org/AudioObject.schema.json create mode 100644 registry/schema-org/AudioObjectSnapshot.schema.json create mode 100644 registry/schema-org/Audiobook.schema.json create mode 100644 registry/schema-org/AuthorizeAction.schema.json create mode 100644 registry/schema-org/AutoBodyShop.schema.json create mode 100644 registry/schema-org/AutoDealer.schema.json create mode 100644 registry/schema-org/AutoPartsStore.schema.json create mode 100644 registry/schema-org/AutoRental.schema.json create mode 100644 registry/schema-org/AutoRepair.schema.json create mode 100644 registry/schema-org/AutoWash.schema.json create mode 100644 registry/schema-org/AutomatedTeller.schema.json create mode 100644 registry/schema-org/AutomotiveBusiness.schema.json create mode 100644 registry/schema-org/BackgroundNewsArticle.schema.json create mode 100644 registry/schema-org/Bakery.schema.json create mode 100644 registry/schema-org/BankAccount.schema.json create mode 100644 registry/schema-org/BankOrCreditUnion.schema.json create mode 100644 registry/schema-org/BarOrPub.schema.json create mode 100644 registry/schema-org/Barcode.schema.json create mode 100644 registry/schema-org/Beach.schema.json create mode 100644 registry/schema-org/BeautySalon.schema.json create mode 100644 registry/schema-org/BedAndBreakfast.schema.json create mode 100644 registry/schema-org/BedDetails.schema.json create mode 100644 registry/schema-org/BedType.schema.json create mode 100644 registry/schema-org/BefriendAction.schema.json create mode 100644 registry/schema-org/BikeStore.schema.json create mode 100644 registry/schema-org/BioChemEntity.schema.json create mode 100644 registry/schema-org/Blog.schema.json create mode 100644 registry/schema-org/BlogPosting.schema.json create mode 100644 registry/schema-org/BloodTest.schema.json create mode 100644 registry/schema-org/BoardingPolicyType.schema.json create mode 100644 registry/schema-org/BoatReservation.schema.json create mode 100644 registry/schema-org/BoatTerminal.schema.json create mode 100644 registry/schema-org/BoatTrip.schema.json create mode 100644 registry/schema-org/BodyMeasurementTypeEnumeration.schema.json create mode 100644 registry/schema-org/BodyOfWater.schema.json create mode 100644 registry/schema-org/Bone.schema.json create mode 100644 registry/schema-org/Book.schema.json create mode 100644 registry/schema-org/BookFormatType.schema.json create mode 100644 registry/schema-org/BookSeries.schema.json create mode 100644 registry/schema-org/BookStore.schema.json create mode 100644 registry/schema-org/BookmarkAction.schema.json create mode 100644 registry/schema-org/BorrowAction.schema.json create mode 100644 registry/schema-org/BowlingAlley.schema.json create mode 100644 registry/schema-org/BrainStructure.schema.json create mode 100644 registry/schema-org/Brand.schema.json create mode 100644 registry/schema-org/BreadcrumbList.schema.json create mode 100644 registry/schema-org/Brewery.schema.json create mode 100644 registry/schema-org/Bridge.schema.json create mode 100644 registry/schema-org/BroadcastChannel.schema.json create mode 100644 registry/schema-org/BroadcastEvent.schema.json create mode 100644 registry/schema-org/BroadcastFrequencySpecification.schema.json create mode 100644 registry/schema-org/BroadcastService.schema.json create mode 100644 registry/schema-org/BrokerageAccount.schema.json create mode 100644 registry/schema-org/BuddhistTemple.schema.json create mode 100644 registry/schema-org/BusOrCoach.schema.json create mode 100644 registry/schema-org/BusReservation.schema.json create mode 100644 registry/schema-org/BusStation.schema.json create mode 100644 registry/schema-org/BusStop.schema.json create mode 100644 registry/schema-org/BusTrip.schema.json create mode 100644 registry/schema-org/BusinessAudience.schema.json create mode 100644 registry/schema-org/BusinessEntityType.schema.json create mode 100644 registry/schema-org/BusinessEvent.schema.json create mode 100644 registry/schema-org/BusinessFunction.schema.json create mode 100644 registry/schema-org/BuyAction.schema.json create mode 100644 registry/schema-org/CDCPMDRecord.schema.json create mode 100644 registry/schema-org/CableOrSatelliteService.schema.json create mode 100644 registry/schema-org/CafeOrCoffeeShop.schema.json create mode 100644 registry/schema-org/Campground.schema.json create mode 100644 registry/schema-org/CampingPitch.schema.json create mode 100644 registry/schema-org/Canal.schema.json create mode 100644 registry/schema-org/CancelAction.schema.json create mode 100644 registry/schema-org/Car.schema.json create mode 100644 registry/schema-org/CarUsageType.schema.json create mode 100644 registry/schema-org/Casino.schema.json create mode 100644 registry/schema-org/CategoryCode.schema.json create mode 100644 registry/schema-org/CategoryCodeSet.schema.json create mode 100644 registry/schema-org/CatholicChurch.schema.json create mode 100644 registry/schema-org/Cemetery.schema.json create mode 100644 registry/schema-org/Certification.schema.json create mode 100644 registry/schema-org/CertificationStatusEnumeration.schema.json create mode 100644 registry/schema-org/Chapter.schema.json create mode 100644 registry/schema-org/CheckAction.schema.json create mode 100644 registry/schema-org/CheckInAction.schema.json create mode 100644 registry/schema-org/CheckOutAction.schema.json create mode 100644 registry/schema-org/CheckoutPage.schema.json create mode 100644 registry/schema-org/ChemicalSubstance.schema.json create mode 100644 registry/schema-org/ChildCare.schema.json create mode 100644 registry/schema-org/ChildrensEvent.schema.json create mode 100644 registry/schema-org/ChooseAction.schema.json create mode 100644 registry/schema-org/Church.schema.json create mode 100644 registry/schema-org/City.schema.json create mode 100644 registry/schema-org/CityHall.schema.json create mode 100644 registry/schema-org/CivicStructure.schema.json create mode 100644 registry/schema-org/Claim.schema.json create mode 100644 registry/schema-org/ClaimReview.schema.json create mode 100644 registry/schema-org/Class.schema.json create mode 100644 registry/schema-org/Clip.schema.json create mode 100644 registry/schema-org/ClothingStore.schema.json create mode 100644 registry/schema-org/Code.schema.json create mode 100644 registry/schema-org/Collection.schema.json create mode 100644 registry/schema-org/CollectionPage.schema.json create mode 100644 registry/schema-org/CollegeOrUniversity.schema.json create mode 100644 registry/schema-org/ComedyClub.schema.json create mode 100644 registry/schema-org/ComedyEvent.schema.json create mode 100644 registry/schema-org/ComicCoverArt.schema.json create mode 100644 registry/schema-org/ComicIssue.schema.json create mode 100644 registry/schema-org/ComicSeries.schema.json create mode 100644 registry/schema-org/ComicStory.schema.json create mode 100644 registry/schema-org/Comment.schema.json create mode 100644 registry/schema-org/CommentAction.schema.json create mode 100644 registry/schema-org/CommunicateAction.schema.json create mode 100644 registry/schema-org/CompleteDataFeed.schema.json create mode 100644 registry/schema-org/CompoundPriceSpecification.schema.json create mode 100644 registry/schema-org/ComputerLanguage.schema.json create mode 100644 registry/schema-org/ComputerStore.schema.json create mode 100644 registry/schema-org/ConfirmAction.schema.json create mode 100644 registry/schema-org/Consortium.schema.json create mode 100644 registry/schema-org/ConstraintNode.schema.json create mode 100644 registry/schema-org/ConsumeAction.schema.json create mode 100644 registry/schema-org/ContactPage.schema.json create mode 100644 registry/schema-org/ContactPoint.schema.json create mode 100644 registry/schema-org/ContactPointOption.schema.json create mode 100644 registry/schema-org/Continent.schema.json create mode 100644 registry/schema-org/ControlAction.schema.json create mode 100644 registry/schema-org/ConvenienceStore.schema.json create mode 100644 registry/schema-org/Conversation.schema.json create mode 100644 registry/schema-org/CookAction.schema.json create mode 100644 registry/schema-org/Cooperative.schema.json create mode 100644 registry/schema-org/Corporation.schema.json create mode 100644 registry/schema-org/CorrectionComment.schema.json create mode 100644 registry/schema-org/Country.schema.json create mode 100644 registry/schema-org/Course.schema.json create mode 100644 registry/schema-org/CourseInstance.schema.json create mode 100644 registry/schema-org/Courthouse.schema.json create mode 100644 registry/schema-org/CoverArt.schema.json create mode 100644 registry/schema-org/CovidTestingFacility.schema.json create mode 100644 registry/schema-org/CreateAction.schema.json create mode 100644 registry/schema-org/CreativeWork.schema.json create mode 100644 registry/schema-org/CreativeWorkSeason.schema.json create mode 100644 registry/schema-org/CreativeWorkSeries.schema.json create mode 100644 registry/schema-org/CreditCard.schema.json create mode 100644 registry/schema-org/Crematorium.schema.json create mode 100644 registry/schema-org/CriticReview.schema.json create mode 100644 registry/schema-org/CssSelectorType.schema.json create mode 100644 registry/schema-org/CurrencyConversionService.schema.json create mode 100644 registry/schema-org/DDxElement.schema.json create mode 100644 registry/schema-org/DanceEvent.schema.json create mode 100644 registry/schema-org/DanceGroup.schema.json create mode 100644 registry/schema-org/DataCatalog.schema.json create mode 100644 registry/schema-org/DataDownload.schema.json create mode 100644 registry/schema-org/DataFeed.schema.json create mode 100644 registry/schema-org/DataFeedItem.schema.json create mode 100644 registry/schema-org/DataType.schema.json create mode 100644 registry/schema-org/Dataset.schema.json create mode 100644 registry/schema-org/DatedMoneySpecification.schema.json create mode 100644 registry/schema-org/DayOfWeek.schema.json create mode 100644 registry/schema-org/DaySpa.schema.json create mode 100644 registry/schema-org/DeactivateAction.schema.json create mode 100644 registry/schema-org/DefenceEstablishment.schema.json create mode 100644 registry/schema-org/DefinedRegion.schema.json create mode 100644 registry/schema-org/DefinedTerm.schema.json create mode 100644 registry/schema-org/DefinedTermSet.schema.json create mode 100644 registry/schema-org/DeleteAction.schema.json create mode 100644 registry/schema-org/DeliveryChargeSpecification.schema.json create mode 100644 registry/schema-org/DeliveryEvent.schema.json create mode 100644 registry/schema-org/DeliveryMethod.schema.json create mode 100644 registry/schema-org/Demand.schema.json create mode 100644 registry/schema-org/Dentist.schema.json create mode 100644 registry/schema-org/DepartAction.schema.json create mode 100644 registry/schema-org/DepartmentStore.schema.json create mode 100644 registry/schema-org/DepositAccount.schema.json create mode 100644 registry/schema-org/DiagnosticLab.schema.json create mode 100644 registry/schema-org/DiagnosticProcedure.schema.json create mode 100644 registry/schema-org/Diet.schema.json create mode 100644 registry/schema-org/DietarySupplement.schema.json create mode 100644 registry/schema-org/DigitalDocument.schema.json create mode 100644 registry/schema-org/DigitalDocumentPermission.schema.json create mode 100644 registry/schema-org/DigitalDocumentPermissionType.schema.json create mode 100644 registry/schema-org/DigitalPlatformEnumeration.schema.json create mode 100644 registry/schema-org/DisagreeAction.schema.json create mode 100644 registry/schema-org/DiscoverAction.schema.json create mode 100644 registry/schema-org/DiscussionForumPosting.schema.json create mode 100644 registry/schema-org/DislikeAction.schema.json create mode 100644 registry/schema-org/Distance.schema.json create mode 100644 registry/schema-org/Distillery.schema.json create mode 100644 registry/schema-org/DonateAction.schema.json create mode 100644 registry/schema-org/DoseSchedule.schema.json create mode 100644 registry/schema-org/DownloadAction.schema.json create mode 100644 registry/schema-org/DrawAction.schema.json create mode 100644 registry/schema-org/Drawing.schema.json create mode 100644 registry/schema-org/DrinkAction.schema.json create mode 100644 registry/schema-org/DriveWheelConfigurationValue.schema.json create mode 100644 registry/schema-org/Drug.schema.json create mode 100644 registry/schema-org/DrugClass.schema.json create mode 100644 registry/schema-org/DrugCost.schema.json create mode 100644 registry/schema-org/DrugCostCategory.schema.json create mode 100644 registry/schema-org/DrugLegalStatus.schema.json create mode 100644 registry/schema-org/DrugPregnancyCategory.schema.json create mode 100644 registry/schema-org/DrugPrescriptionStatus.schema.json create mode 100644 registry/schema-org/DrugStrength.schema.json create mode 100644 registry/schema-org/DryCleaningOrLaundry.schema.json create mode 100644 registry/schema-org/Duration.schema.json create mode 100644 registry/schema-org/EUEnergyEfficiencyEnumeration.schema.json create mode 100644 registry/schema-org/EatAction.schema.json create mode 100644 registry/schema-org/EducationEvent.schema.json create mode 100644 registry/schema-org/EducationalAudience.schema.json create mode 100644 registry/schema-org/EducationalOccupationalCredential.schema.json create mode 100644 registry/schema-org/EducationalOccupationalProgram.schema.json create mode 100644 registry/schema-org/EducationalOrganization.schema.json create mode 100644 registry/schema-org/Electrician.schema.json create mode 100644 registry/schema-org/ElectronicsStore.schema.json create mode 100644 registry/schema-org/ElementarySchool.schema.json create mode 100644 registry/schema-org/EmailMessage.schema.json create mode 100644 registry/schema-org/Embassy.schema.json create mode 100644 registry/schema-org/EmergencyService.schema.json create mode 100644 registry/schema-org/EmployeeRole.schema.json create mode 100644 registry/schema-org/EmployerAggregateRating.schema.json create mode 100644 registry/schema-org/EmployerReview.schema.json create mode 100644 registry/schema-org/EmploymentAgency.schema.json create mode 100644 registry/schema-org/EndorseAction.schema.json create mode 100644 registry/schema-org/EndorsementRating.schema.json create mode 100644 registry/schema-org/Energy.schema.json create mode 100644 registry/schema-org/EnergyConsumptionDetails.schema.json create mode 100644 registry/schema-org/EnergyEfficiencyEnumeration.schema.json create mode 100644 registry/schema-org/EnergyStarEnergyEfficiencyEnumeration.schema.json create mode 100644 registry/schema-org/EngineSpecification.schema.json create mode 100644 registry/schema-org/EntertainmentBusiness.schema.json create mode 100644 registry/schema-org/EntryPoint.schema.json create mode 100644 registry/schema-org/Enumeration.schema.json create mode 100644 registry/schema-org/Episode.schema.json create mode 100644 registry/schema-org/Event.schema.json create mode 100644 registry/schema-org/EventAttendanceModeEnumeration.schema.json create mode 100644 registry/schema-org/EventReservation.schema.json create mode 100644 registry/schema-org/EventSeries.schema.json create mode 100644 registry/schema-org/EventStatusType.schema.json create mode 100644 registry/schema-org/EventVenue.schema.json create mode 100644 registry/schema-org/ExchangeRateSpecification.schema.json create mode 100644 registry/schema-org/ExerciseAction.schema.json create mode 100644 registry/schema-org/ExerciseGym.schema.json create mode 100644 registry/schema-org/ExercisePlan.schema.json create mode 100644 registry/schema-org/ExhibitionEvent.schema.json create mode 100644 registry/schema-org/FAQPage.schema.json create mode 100644 registry/schema-org/FMRadioChannel.schema.json create mode 100644 registry/schema-org/FastFoodRestaurant.schema.json create mode 100644 registry/schema-org/Festival.schema.json create mode 100644 registry/schema-org/FilmAction.schema.json create mode 100644 registry/schema-org/FinancialIncentive.schema.json create mode 100644 registry/schema-org/FinancialProduct.schema.json create mode 100644 registry/schema-org/FinancialService.schema.json create mode 100644 registry/schema-org/FindAction.schema.json create mode 100644 registry/schema-org/FireStation.schema.json create mode 100644 registry/schema-org/Flight.schema.json create mode 100644 registry/schema-org/FlightReservation.schema.json create mode 100644 registry/schema-org/Float.schema.json create mode 100644 registry/schema-org/FloorPlan.schema.json create mode 100644 registry/schema-org/Florist.schema.json create mode 100644 registry/schema-org/FollowAction.schema.json create mode 100644 registry/schema-org/FoodEstablishment.schema.json create mode 100644 registry/schema-org/FoodEstablishmentReservation.schema.json create mode 100644 registry/schema-org/FoodEvent.schema.json create mode 100644 registry/schema-org/FoodService.schema.json create mode 100644 registry/schema-org/FulfillmentTypeEnumeration.schema.json create mode 100644 registry/schema-org/FundingAgency.schema.json create mode 100644 registry/schema-org/FundingScheme.schema.json create mode 100644 registry/schema-org/FurnitureStore.schema.json create mode 100644 registry/schema-org/Game.schema.json create mode 100644 registry/schema-org/GameAvailabilityEnumeration.schema.json create mode 100644 registry/schema-org/GamePlayMode.schema.json create mode 100644 registry/schema-org/GameServer.schema.json create mode 100644 registry/schema-org/GameServerStatus.schema.json create mode 100644 registry/schema-org/GardenStore.schema.json create mode 100644 registry/schema-org/GasStation.schema.json create mode 100644 registry/schema-org/GatedResidenceCommunity.schema.json create mode 100644 registry/schema-org/GenderType.schema.json create mode 100644 registry/schema-org/Gene.schema.json create mode 100644 registry/schema-org/GeneralContractor.schema.json create mode 100644 registry/schema-org/GeoCircle.schema.json create mode 100644 registry/schema-org/GeoCoordinates.schema.json create mode 100644 registry/schema-org/GeoShape.schema.json create mode 100644 registry/schema-org/GeospatialGeometry.schema.json create mode 100644 registry/schema-org/GiveAction.schema.json create mode 100644 registry/schema-org/GolfCourse.schema.json create mode 100644 registry/schema-org/GovernmentBenefitsType.schema.json create mode 100644 registry/schema-org/GovernmentBuilding.schema.json create mode 100644 registry/schema-org/GovernmentOffice.schema.json create mode 100644 registry/schema-org/GovernmentOrganization.schema.json create mode 100644 registry/schema-org/GovernmentPermit.schema.json create mode 100644 registry/schema-org/GovernmentService.schema.json create mode 100644 registry/schema-org/Grant.schema.json create mode 100644 registry/schema-org/GroceryStore.schema.json create mode 100644 registry/schema-org/Guide.schema.json create mode 100644 registry/schema-org/HVACBusiness.schema.json create mode 100644 registry/schema-org/Hackathon.schema.json create mode 100644 registry/schema-org/HairSalon.schema.json create mode 100644 registry/schema-org/HardwareStore.schema.json create mode 100644 registry/schema-org/HealthAndBeautyBusiness.schema.json create mode 100644 registry/schema-org/HealthAspectEnumeration.schema.json create mode 100644 registry/schema-org/HealthClub.schema.json create mode 100644 registry/schema-org/HealthInsurancePlan.schema.json create mode 100644 registry/schema-org/HealthPlanCostSharingSpecification.schema.json create mode 100644 registry/schema-org/HealthPlanFormulary.schema.json create mode 100644 registry/schema-org/HealthPlanNetwork.schema.json create mode 100644 registry/schema-org/HealthTopicContent.schema.json create mode 100644 registry/schema-org/HighSchool.schema.json create mode 100644 registry/schema-org/HinduTemple.schema.json create mode 100644 registry/schema-org/HobbyShop.schema.json create mode 100644 registry/schema-org/HomeAndConstructionBusiness.schema.json create mode 100644 registry/schema-org/HomeGoodsStore.schema.json create mode 100644 registry/schema-org/Hospital.schema.json create mode 100644 registry/schema-org/Hostel.schema.json create mode 100644 registry/schema-org/Hotel.schema.json create mode 100644 registry/schema-org/HotelRoom.schema.json create mode 100644 registry/schema-org/House.schema.json create mode 100644 registry/schema-org/HousePainter.schema.json create mode 100644 registry/schema-org/HowTo.schema.json create mode 100644 registry/schema-org/HowToDirection.schema.json create mode 100644 registry/schema-org/HowToItem.schema.json create mode 100644 registry/schema-org/HowToSection.schema.json create mode 100644 registry/schema-org/HowToStep.schema.json create mode 100644 registry/schema-org/HowToSupply.schema.json create mode 100644 registry/schema-org/HowToTip.schema.json create mode 100644 registry/schema-org/HowToTool.schema.json create mode 100644 registry/schema-org/HyperToc.schema.json create mode 100644 registry/schema-org/HyperTocEntry.schema.json create mode 100644 registry/schema-org/IPTCDigitalSourceEnumeration.schema.json create mode 100644 registry/schema-org/IceCreamShop.schema.json create mode 100644 registry/schema-org/IgnoreAction.schema.json create mode 100644 registry/schema-org/ImageGallery.schema.json delete mode 100644 registry/schema-org/ImageObject.json create mode 100644 registry/schema-org/ImageObject.schema.json create mode 100644 registry/schema-org/ImageObjectSnapshot.schema.json create mode 100644 registry/schema-org/ImagingTest.schema.json create mode 100644 registry/schema-org/IncentiveQualifiedExpenseType.schema.json create mode 100644 registry/schema-org/IncentiveStatus.schema.json create mode 100644 registry/schema-org/IncentiveType.schema.json create mode 100644 registry/schema-org/IndividualPhysician.schema.json create mode 100644 registry/schema-org/IndividualProduct.schema.json create mode 100644 registry/schema-org/InfectiousAgentClass.schema.json create mode 100644 registry/schema-org/InfectiousDisease.schema.json create mode 100644 registry/schema-org/InformAction.schema.json create mode 100644 registry/schema-org/InsertAction.schema.json create mode 100644 registry/schema-org/InstallAction.schema.json create mode 100644 registry/schema-org/InsuranceAgency.schema.json create mode 100644 registry/schema-org/Intangible.schema.json create mode 100644 registry/schema-org/Integer.schema.json create mode 100644 registry/schema-org/InteractAction.schema.json create mode 100644 registry/schema-org/InteractionCounter.schema.json create mode 100644 registry/schema-org/InternetCafe.schema.json create mode 100644 registry/schema-org/InvestmentFund.schema.json create mode 100644 registry/schema-org/InvestmentOrDeposit.schema.json create mode 100644 registry/schema-org/InviteAction.schema.json create mode 100644 registry/schema-org/Invoice.schema.json create mode 100644 registry/schema-org/ItemAvailability.schema.json create mode 100644 registry/schema-org/ItemList.schema.json create mode 100644 registry/schema-org/ItemListOrderType.schema.json create mode 100644 registry/schema-org/ItemPage.schema.json create mode 100644 registry/schema-org/JewelryStore.schema.json create mode 100644 registry/schema-org/JobPosting.schema.json create mode 100644 registry/schema-org/JoinAction.schema.json create mode 100644 registry/schema-org/Joint.schema.json create mode 100644 registry/schema-org/LakeBodyOfWater.schema.json create mode 100644 registry/schema-org/Landform.schema.json create mode 100644 registry/schema-org/LandmarksOrHistoricalBuildings.schema.json create mode 100644 registry/schema-org/Language.schema.json create mode 100644 registry/schema-org/LearningResource.schema.json create mode 100644 registry/schema-org/LeaveAction.schema.json create mode 100644 registry/schema-org/LegalForceStatus.schema.json create mode 100644 registry/schema-org/LegalService.schema.json create mode 100644 registry/schema-org/LegalValueLevel.schema.json create mode 100644 registry/schema-org/Legislation.schema.json create mode 100644 registry/schema-org/LegislationObject.schema.json create mode 100644 registry/schema-org/LegislativeBuilding.schema.json create mode 100644 registry/schema-org/LendAction.schema.json create mode 100644 registry/schema-org/Library.schema.json create mode 100644 registry/schema-org/LibrarySystem.schema.json create mode 100644 registry/schema-org/LifestyleModification.schema.json create mode 100644 registry/schema-org/Ligament.schema.json create mode 100644 registry/schema-org/LikeAction.schema.json create mode 100644 registry/schema-org/LinkRole.schema.json create mode 100644 registry/schema-org/LiquorStore.schema.json create mode 100644 registry/schema-org/ListItem.schema.json create mode 100644 registry/schema-org/ListenAction.schema.json create mode 100644 registry/schema-org/LiteraryEvent.schema.json create mode 100644 registry/schema-org/LiveBlogPosting.schema.json create mode 100644 registry/schema-org/LoanOrCredit.schema.json create mode 100644 registry/schema-org/LocalBusiness.schema.json create mode 100644 registry/schema-org/LocationFeatureSpecification.schema.json create mode 100644 registry/schema-org/Locksmith.schema.json create mode 100644 registry/schema-org/LodgingBusiness.schema.json create mode 100644 registry/schema-org/LodgingReservation.schema.json create mode 100644 registry/schema-org/LoseAction.schema.json create mode 100644 registry/schema-org/LymphaticVessel.schema.json create mode 100644 registry/schema-org/Manuscript.schema.json create mode 100644 registry/schema-org/Map.schema.json create mode 100644 registry/schema-org/MapCategoryType.schema.json create mode 100644 registry/schema-org/MarryAction.schema.json create mode 100644 registry/schema-org/Mass.schema.json create mode 100644 registry/schema-org/MathSolver.schema.json create mode 100644 registry/schema-org/MaximumDoseSchedule.schema.json create mode 100644 registry/schema-org/MeasurementMethodEnum.schema.json create mode 100644 registry/schema-org/MeasurementTypeEnumeration.schema.json create mode 100644 registry/schema-org/MediaEnumeration.schema.json create mode 100644 registry/schema-org/MediaGallery.schema.json create mode 100644 registry/schema-org/MediaManipulationRatingEnumeration.schema.json create mode 100644 registry/schema-org/MediaObject.schema.json create mode 100644 registry/schema-org/MediaReview.schema.json create mode 100644 registry/schema-org/MediaReviewItem.schema.json create mode 100644 registry/schema-org/MediaSubscription.schema.json create mode 100644 registry/schema-org/MedicalAudience.schema.json create mode 100644 registry/schema-org/MedicalAudienceType.schema.json create mode 100644 registry/schema-org/MedicalBusiness.schema.json create mode 100644 registry/schema-org/MedicalCause.schema.json create mode 100644 registry/schema-org/MedicalClinic.schema.json create mode 100644 registry/schema-org/MedicalCode.schema.json create mode 100644 registry/schema-org/MedicalCondition.schema.json create mode 100644 registry/schema-org/MedicalConditionStage.schema.json create mode 100644 registry/schema-org/MedicalContraindication.schema.json create mode 100644 registry/schema-org/MedicalDevice.schema.json create mode 100644 registry/schema-org/MedicalDevicePurpose.schema.json create mode 100644 registry/schema-org/MedicalEntity.schema.json create mode 100644 registry/schema-org/MedicalEnumeration.schema.json create mode 100644 registry/schema-org/MedicalEvidenceLevel.schema.json create mode 100644 registry/schema-org/MedicalGuideline.schema.json create mode 100644 registry/schema-org/MedicalGuidelineContraindication.schema.json create mode 100644 registry/schema-org/MedicalGuidelineRecommendation.schema.json create mode 100644 registry/schema-org/MedicalImagingTechnique.schema.json create mode 100644 registry/schema-org/MedicalIndication.schema.json create mode 100644 registry/schema-org/MedicalIntangible.schema.json create mode 100644 registry/schema-org/MedicalObservationalStudy.schema.json create mode 100644 registry/schema-org/MedicalObservationalStudyDesign.schema.json create mode 100644 registry/schema-org/MedicalOrganization.schema.json create mode 100644 registry/schema-org/MedicalProcedure.schema.json create mode 100644 registry/schema-org/MedicalProcedureType.schema.json create mode 100644 registry/schema-org/MedicalRiskCalculator.schema.json create mode 100644 registry/schema-org/MedicalRiskEstimator.schema.json create mode 100644 registry/schema-org/MedicalRiskFactor.schema.json create mode 100644 registry/schema-org/MedicalRiskScore.schema.json create mode 100644 registry/schema-org/MedicalScholarlyArticle.schema.json create mode 100644 registry/schema-org/MedicalSign.schema.json create mode 100644 registry/schema-org/MedicalSignOrSymptom.schema.json create mode 100644 registry/schema-org/MedicalSpecialty.schema.json create mode 100644 registry/schema-org/MedicalStudy.schema.json create mode 100644 registry/schema-org/MedicalStudyStatus.schema.json create mode 100644 registry/schema-org/MedicalSymptom.schema.json create mode 100644 registry/schema-org/MedicalTest.schema.json create mode 100644 registry/schema-org/MedicalTestPanel.schema.json create mode 100644 registry/schema-org/MedicalTherapy.schema.json create mode 100644 registry/schema-org/MedicalTrial.schema.json create mode 100644 registry/schema-org/MedicalTrialDesign.schema.json create mode 100644 registry/schema-org/MedicalWebPage.schema.json create mode 100644 registry/schema-org/MedicineSystem.schema.json create mode 100644 registry/schema-org/MeetingRoom.schema.json create mode 100644 registry/schema-org/MemberProgram.schema.json create mode 100644 registry/schema-org/MemberProgramTier.schema.json create mode 100644 registry/schema-org/MensClothingStore.schema.json create mode 100644 registry/schema-org/Menu.schema.json create mode 100644 registry/schema-org/MenuItem.schema.json create mode 100644 registry/schema-org/MenuSection.schema.json create mode 100644 registry/schema-org/MerchantReturnEnumeration.schema.json create mode 100644 registry/schema-org/MerchantReturnPolicy.schema.json create mode 100644 registry/schema-org/MerchantReturnPolicySeasonalOverride.schema.json create mode 100644 registry/schema-org/Message.schema.json create mode 100644 registry/schema-org/MiddleSchool.schema.json create mode 100644 registry/schema-org/MobileApplication.schema.json create mode 100644 registry/schema-org/MobilePhoneStore.schema.json create mode 100644 registry/schema-org/MolecularEntity.schema.json create mode 100644 registry/schema-org/MonetaryAmount.schema.json create mode 100644 registry/schema-org/MonetaryAmountDistribution.schema.json create mode 100644 registry/schema-org/MonetaryGrant.schema.json create mode 100644 registry/schema-org/MoneyTransfer.schema.json create mode 100644 registry/schema-org/MortgageLoan.schema.json create mode 100644 registry/schema-org/Mosque.schema.json create mode 100644 registry/schema-org/Motel.schema.json create mode 100644 registry/schema-org/Motorcycle.schema.json create mode 100644 registry/schema-org/MotorcycleDealer.schema.json create mode 100644 registry/schema-org/MotorcycleRepair.schema.json create mode 100644 registry/schema-org/MotorizedBicycle.schema.json create mode 100644 registry/schema-org/Mountain.schema.json create mode 100644 registry/schema-org/MoveAction.schema.json create mode 100644 registry/schema-org/Movie.schema.json create mode 100644 registry/schema-org/MovieClip.schema.json create mode 100644 registry/schema-org/MovieRentalStore.schema.json create mode 100644 registry/schema-org/MovieSeries.schema.json create mode 100644 registry/schema-org/MovieTheater.schema.json create mode 100644 registry/schema-org/MovingCompany.schema.json create mode 100644 registry/schema-org/Muscle.schema.json create mode 100644 registry/schema-org/Museum.schema.json create mode 100644 registry/schema-org/MusicAlbum.schema.json create mode 100644 registry/schema-org/MusicAlbumProductionType.schema.json create mode 100644 registry/schema-org/MusicAlbumReleaseType.schema.json create mode 100644 registry/schema-org/MusicComposition.schema.json create mode 100644 registry/schema-org/MusicEvent.schema.json create mode 100644 registry/schema-org/MusicGroup.schema.json create mode 100644 registry/schema-org/MusicPlaylist.schema.json create mode 100644 registry/schema-org/MusicRecording.schema.json create mode 100644 registry/schema-org/MusicRelease.schema.json create mode 100644 registry/schema-org/MusicReleaseFormatType.schema.json create mode 100644 registry/schema-org/MusicStore.schema.json create mode 100644 registry/schema-org/MusicVenue.schema.json create mode 100644 registry/schema-org/MusicVideoObject.schema.json create mode 100644 registry/schema-org/NGO.schema.json create mode 100644 registry/schema-org/NLNonprofitType.schema.json create mode 100644 registry/schema-org/NailSalon.schema.json create mode 100644 registry/schema-org/Nerve.schema.json create mode 100644 registry/schema-org/NewsArticle.schema.json create mode 100644 registry/schema-org/NewsMediaOrganization.schema.json create mode 100644 registry/schema-org/Newspaper.schema.json create mode 100644 registry/schema-org/NightClub.schema.json create mode 100644 registry/schema-org/NonprofitType.schema.json create mode 100644 registry/schema-org/Notary.schema.json create mode 100644 registry/schema-org/NoteDigitalDocument.schema.json create mode 100644 registry/schema-org/NutritionInformation.schema.json create mode 100644 registry/schema-org/Observation.schema.json create mode 100644 registry/schema-org/Occupation.schema.json create mode 100644 registry/schema-org/OccupationalExperienceRequirements.schema.json create mode 100644 registry/schema-org/OccupationalTherapy.schema.json create mode 100644 registry/schema-org/OceanBodyOfWater.schema.json create mode 100644 registry/schema-org/Offer.schema.json create mode 100644 registry/schema-org/OfferCatalog.schema.json create mode 100644 registry/schema-org/OfferForLease.schema.json create mode 100644 registry/schema-org/OfferForPurchase.schema.json create mode 100644 registry/schema-org/OfferItemCondition.schema.json create mode 100644 registry/schema-org/OfferShippingDetails.schema.json create mode 100644 registry/schema-org/OfficeEquipmentStore.schema.json create mode 100644 registry/schema-org/OnDemandEvent.schema.json create mode 100644 registry/schema-org/OnlineBusiness.schema.json create mode 100644 registry/schema-org/OnlineStore.schema.json create mode 100644 registry/schema-org/OpeningHoursSpecification.schema.json create mode 100644 registry/schema-org/OpinionNewsArticle.schema.json create mode 100644 registry/schema-org/Optician.schema.json create mode 100644 registry/schema-org/Order.schema.json create mode 100644 registry/schema-org/OrderAction.schema.json create mode 100644 registry/schema-org/OrderItem.schema.json create mode 100644 registry/schema-org/OrderStatus.schema.json create mode 100644 registry/schema-org/Organization.schema.json create mode 100644 registry/schema-org/OrganizationRole.schema.json create mode 100644 registry/schema-org/OrganizeAction.schema.json create mode 100644 registry/schema-org/OutletStore.schema.json create mode 100644 registry/schema-org/OwnershipInfo.schema.json create mode 100644 registry/schema-org/PaintAction.schema.json create mode 100644 registry/schema-org/Painting.schema.json create mode 100644 registry/schema-org/PalliativeProcedure.schema.json create mode 100644 registry/schema-org/ParcelDelivery.schema.json create mode 100644 registry/schema-org/ParentAudience.schema.json create mode 100644 registry/schema-org/Park.schema.json create mode 100644 registry/schema-org/ParkingFacility.schema.json create mode 100644 registry/schema-org/PathologyTest.schema.json create mode 100644 registry/schema-org/Patient.schema.json create mode 100644 registry/schema-org/PawnShop.schema.json create mode 100644 registry/schema-org/PayAction.schema.json create mode 100644 registry/schema-org/PaymentCard.schema.json create mode 100644 registry/schema-org/PaymentChargeSpecification.schema.json create mode 100644 registry/schema-org/PaymentMethod.schema.json create mode 100644 registry/schema-org/PaymentMethodType.schema.json create mode 100644 registry/schema-org/PaymentService.schema.json create mode 100644 registry/schema-org/PaymentStatusType.schema.json create mode 100644 registry/schema-org/PeopleAudience.schema.json create mode 100644 registry/schema-org/PerformAction.schema.json create mode 100644 registry/schema-org/PerformanceRole.schema.json create mode 100644 registry/schema-org/PerformingArtsTheater.schema.json create mode 100644 registry/schema-org/PerformingGroup.schema.json create mode 100644 registry/schema-org/Periodical.schema.json create mode 100644 registry/schema-org/Permit.schema.json create mode 100644 registry/schema-org/Person.schema.json create mode 100644 registry/schema-org/PetStore.schema.json create mode 100644 registry/schema-org/Pharmacy.schema.json create mode 100644 registry/schema-org/Photograph.schema.json create mode 100644 registry/schema-org/PhotographAction.schema.json create mode 100644 registry/schema-org/PhysicalActivity.schema.json create mode 100644 registry/schema-org/PhysicalActivityCategory.schema.json create mode 100644 registry/schema-org/PhysicalExam.schema.json create mode 100644 registry/schema-org/PhysicalTherapy.schema.json create mode 100644 registry/schema-org/Physician.schema.json create mode 100644 registry/schema-org/PhysiciansOffice.schema.json create mode 100644 registry/schema-org/Place.schema.json create mode 100644 registry/schema-org/PlaceOfWorship.schema.json create mode 100644 registry/schema-org/PlanAction.schema.json create mode 100644 registry/schema-org/Play.schema.json create mode 100644 registry/schema-org/PlayAction.schema.json create mode 100644 registry/schema-org/PlayGameAction.schema.json create mode 100644 registry/schema-org/Playground.schema.json create mode 100644 registry/schema-org/Plumber.schema.json create mode 100644 registry/schema-org/PodcastEpisode.schema.json create mode 100644 registry/schema-org/PodcastSeason.schema.json create mode 100644 registry/schema-org/PodcastSeries.schema.json create mode 100644 registry/schema-org/PoliceStation.schema.json create mode 100644 registry/schema-org/PoliticalParty.schema.json create mode 100644 registry/schema-org/Pond.schema.json create mode 100644 registry/schema-org/PostOffice.schema.json create mode 100644 registry/schema-org/PostalAddress.schema.json create mode 100644 registry/schema-org/PostalCodeRangeSpecification.schema.json create mode 100644 registry/schema-org/Poster.schema.json create mode 100644 registry/schema-org/PreOrderAction.schema.json create mode 100644 registry/schema-org/PrependAction.schema.json create mode 100644 registry/schema-org/Preschool.schema.json create mode 100644 registry/schema-org/PresentationDigitalDocument.schema.json create mode 100644 registry/schema-org/PreventionIndication.schema.json create mode 100644 registry/schema-org/PriceComponentTypeEnumeration.schema.json create mode 100644 registry/schema-org/PriceSpecification.schema.json create mode 100644 registry/schema-org/PriceTypeEnumeration.schema.json create mode 100644 registry/schema-org/Product.schema.json create mode 100644 registry/schema-org/ProductCollection.schema.json create mode 100644 registry/schema-org/ProductGroup.schema.json create mode 100644 registry/schema-org/ProductModel.schema.json create mode 100644 registry/schema-org/ProfessionalService.schema.json create mode 100644 registry/schema-org/ProfilePage.schema.json create mode 100644 registry/schema-org/ProgramMembership.schema.json create mode 100644 registry/schema-org/Project.schema.json create mode 100644 registry/schema-org/PronounceableText.schema.json create mode 100644 registry/schema-org/Property.schema.json create mode 100644 registry/schema-org/PropertyValue.schema.json create mode 100644 registry/schema-org/PropertyValueSpecification.schema.json create mode 100644 registry/schema-org/Protein.schema.json create mode 100644 registry/schema-org/PsychologicalTreatment.schema.json create mode 100644 registry/schema-org/PublicSwimmingPool.schema.json create mode 100644 registry/schema-org/PublicToilet.schema.json create mode 100644 registry/schema-org/PublicationEvent.schema.json create mode 100644 registry/schema-org/PublicationIssue.schema.json create mode 100644 registry/schema-org/PublicationVolume.schema.json create mode 100644 registry/schema-org/PurchaseType.schema.json create mode 100644 registry/schema-org/QAPage.schema.json create mode 100644 registry/schema-org/QualitativeValue.schema.json create mode 100644 registry/schema-org/QuantitativeValue.schema.json create mode 100644 registry/schema-org/QuantitativeValueDistribution.schema.json create mode 100644 registry/schema-org/Quantity.schema.json create mode 100644 registry/schema-org/Question.schema.json create mode 100644 registry/schema-org/Quiz.schema.json create mode 100644 registry/schema-org/Quotation.schema.json create mode 100644 registry/schema-org/QuoteAction.schema.json create mode 100644 registry/schema-org/RVPark.schema.json create mode 100644 registry/schema-org/RadiationTherapy.schema.json create mode 100644 registry/schema-org/RadioBroadcastService.schema.json create mode 100644 registry/schema-org/RadioChannel.schema.json create mode 100644 registry/schema-org/RadioClip.schema.json create mode 100644 registry/schema-org/RadioEpisode.schema.json create mode 100644 registry/schema-org/RadioSeason.schema.json create mode 100644 registry/schema-org/RadioSeries.schema.json create mode 100644 registry/schema-org/RadioStation.schema.json create mode 100644 registry/schema-org/Rating.schema.json create mode 100644 registry/schema-org/ReactAction.schema.json create mode 100644 registry/schema-org/ReadAction.schema.json create mode 100644 registry/schema-org/RealEstateAgent.schema.json create mode 100644 registry/schema-org/RealEstateListing.schema.json create mode 100644 registry/schema-org/ReceiveAction.schema.json delete mode 100644 registry/schema-org/Recipe.json create mode 100644 registry/schema-org/Recipe.schema.json create mode 100644 registry/schema-org/Recommendation.schema.json create mode 100644 registry/schema-org/RecommendedDoseSchedule.schema.json create mode 100644 registry/schema-org/RecyclingCenter.schema.json create mode 100644 registry/schema-org/RefundTypeEnumeration.schema.json create mode 100644 registry/schema-org/RegisterAction.schema.json create mode 100644 registry/schema-org/RejectAction.schema.json create mode 100644 registry/schema-org/RentAction.schema.json create mode 100644 registry/schema-org/RentalCarReservation.schema.json create mode 100644 registry/schema-org/RepaymentSpecification.schema.json create mode 100644 registry/schema-org/ReplaceAction.schema.json create mode 100644 registry/schema-org/ReplyAction.schema.json create mode 100644 registry/schema-org/Report.schema.json create mode 100644 registry/schema-org/ReportageNewsArticle.schema.json create mode 100644 registry/schema-org/ReportedDoseSchedule.schema.json create mode 100644 registry/schema-org/ResearchOrganization.schema.json create mode 100644 registry/schema-org/ResearchProject.schema.json create mode 100644 registry/schema-org/Researcher.schema.json create mode 100644 registry/schema-org/Reservation.schema.json create mode 100644 registry/schema-org/ReservationPackage.schema.json create mode 100644 registry/schema-org/ReservationStatusType.schema.json create mode 100644 registry/schema-org/ReserveAction.schema.json create mode 100644 registry/schema-org/Reservoir.schema.json create mode 100644 registry/schema-org/Residence.schema.json create mode 100644 registry/schema-org/Resort.schema.json create mode 100644 registry/schema-org/Restaurant.schema.json create mode 100644 registry/schema-org/RestrictedDiet.schema.json create mode 100644 registry/schema-org/ResumeAction.schema.json create mode 100644 registry/schema-org/ReturnAction.schema.json create mode 100644 registry/schema-org/ReturnFeesEnumeration.schema.json create mode 100644 registry/schema-org/ReturnLabelSourceEnumeration.schema.json create mode 100644 registry/schema-org/ReturnMethodEnumeration.schema.json create mode 100644 registry/schema-org/Review.schema.json create mode 100644 registry/schema-org/ReviewAction.schema.json create mode 100644 registry/schema-org/ReviewNewsArticle.schema.json create mode 100644 registry/schema-org/RiverBodyOfWater.schema.json create mode 100644 registry/schema-org/Role.schema.json create mode 100644 registry/schema-org/RoofingContractor.schema.json create mode 100644 registry/schema-org/Room.schema.json create mode 100644 registry/schema-org/RsvpAction.schema.json create mode 100644 registry/schema-org/RsvpResponseType.schema.json create mode 100644 registry/schema-org/SaleEvent.schema.json create mode 100644 registry/schema-org/SatiricalArticle.schema.json create mode 100644 registry/schema-org/Schedule.schema.json create mode 100644 registry/schema-org/ScheduleAction.schema.json create mode 100644 registry/schema-org/ScholarlyArticle.schema.json create mode 100644 registry/schema-org/School.schema.json create mode 100644 registry/schema-org/SchoolDistrict.schema.json create mode 100644 registry/schema-org/ScreeningEvent.schema.json create mode 100644 registry/schema-org/Sculpture.schema.json create mode 100644 registry/schema-org/SeaBodyOfWater.schema.json create mode 100644 registry/schema-org/SearchAction.schema.json create mode 100644 registry/schema-org/SearchRescueOrganization.schema.json create mode 100644 registry/schema-org/SearchResultsPage.schema.json create mode 100644 registry/schema-org/Season.schema.json create mode 100644 registry/schema-org/Seat.schema.json create mode 100644 registry/schema-org/SeekToAction.schema.json create mode 100644 registry/schema-org/SelfStorage.schema.json create mode 100644 registry/schema-org/SellAction.schema.json create mode 100644 registry/schema-org/SendAction.schema.json create mode 100644 registry/schema-org/Series.schema.json create mode 100644 registry/schema-org/Service.schema.json create mode 100644 registry/schema-org/ServiceChannel.schema.json create mode 100644 registry/schema-org/ServicePeriod.schema.json create mode 100644 registry/schema-org/ShareAction.schema.json create mode 100644 registry/schema-org/SheetMusic.schema.json create mode 100644 registry/schema-org/ShippingConditions.schema.json create mode 100644 registry/schema-org/ShippingDeliveryTime.schema.json create mode 100644 registry/schema-org/ShippingRateSettings.schema.json create mode 100644 registry/schema-org/ShippingService.schema.json create mode 100644 registry/schema-org/ShoeStore.schema.json create mode 100644 registry/schema-org/ShoppingCenter.schema.json create mode 100644 registry/schema-org/ShortStory.schema.json create mode 100644 registry/schema-org/SingleFamilyResidence.schema.json create mode 100644 registry/schema-org/SiteNavigationElement.schema.json create mode 100644 registry/schema-org/SizeGroupEnumeration.schema.json create mode 100644 registry/schema-org/SizeSpecification.schema.json create mode 100644 registry/schema-org/SizeSystemEnumeration.schema.json create mode 100644 registry/schema-org/SkiResort.schema.json create mode 100644 registry/schema-org/SocialEvent.schema.json create mode 100644 registry/schema-org/SocialMediaPosting.schema.json create mode 100644 registry/schema-org/SoftwareApplication.schema.json create mode 100644 registry/schema-org/SoftwareSourceCode.schema.json create mode 100644 registry/schema-org/SolveMathAction.schema.json create mode 100644 registry/schema-org/SomeProducts.schema.json create mode 100644 registry/schema-org/SpeakableSpecification.schema.json create mode 100644 registry/schema-org/SpecialAnnouncement.schema.json create mode 100644 registry/schema-org/Specialty.schema.json create mode 100644 registry/schema-org/SportingGoodsStore.schema.json create mode 100644 registry/schema-org/SportsActivityLocation.schema.json create mode 100644 registry/schema-org/SportsClub.schema.json create mode 100644 registry/schema-org/SportsEvent.schema.json create mode 100644 registry/schema-org/SportsOrganization.schema.json create mode 100644 registry/schema-org/SportsTeam.schema.json create mode 100644 registry/schema-org/SpreadsheetDigitalDocument.schema.json create mode 100644 registry/schema-org/StadiumOrArena.schema.json create mode 100644 registry/schema-org/State.schema.json create mode 100644 registry/schema-org/Statement.schema.json create mode 100644 registry/schema-org/StatisticalPopulation.schema.json create mode 100644 registry/schema-org/StatisticalVariable.schema.json create mode 100644 registry/schema-org/StatusEnumeration.schema.json create mode 100644 registry/schema-org/SteeringPositionValue.schema.json create mode 100644 registry/schema-org/Store.schema.json create mode 100644 registry/schema-org/StructuredValue.schema.json create mode 100644 registry/schema-org/SubscribeAction.schema.json create mode 100644 registry/schema-org/Substance.schema.json create mode 100644 registry/schema-org/SubwayStation.schema.json create mode 100644 registry/schema-org/Suite.schema.json create mode 100644 registry/schema-org/SuperficialAnatomy.schema.json create mode 100644 registry/schema-org/SurgicalProcedure.schema.json create mode 100644 registry/schema-org/SuspendAction.schema.json create mode 100644 registry/schema-org/Syllabus.schema.json create mode 100644 registry/schema-org/Synagogue.schema.json create mode 100644 registry/schema-org/TVClip.schema.json create mode 100644 registry/schema-org/TVEpisode.schema.json create mode 100644 registry/schema-org/TVSeason.schema.json create mode 100644 registry/schema-org/TVSeries.schema.json create mode 100644 registry/schema-org/Table.schema.json create mode 100644 registry/schema-org/TakeAction.schema.json create mode 100644 registry/schema-org/TattooParlor.schema.json create mode 100644 registry/schema-org/Taxi.schema.json create mode 100644 registry/schema-org/TaxiReservation.schema.json create mode 100644 registry/schema-org/TaxiService.schema.json create mode 100644 registry/schema-org/TaxiStand.schema.json create mode 100644 registry/schema-org/Taxon.schema.json create mode 100644 registry/schema-org/TechArticle.schema.json create mode 100644 registry/schema-org/TelevisionChannel.schema.json create mode 100644 registry/schema-org/TelevisionStation.schema.json create mode 100644 registry/schema-org/TennisComplex.schema.json create mode 100644 registry/schema-org/TextDigitalDocument.schema.json create mode 100644 registry/schema-org/TextObject.schema.json create mode 100644 registry/schema-org/TheaterEvent.schema.json create mode 100644 registry/schema-org/TheaterGroup.schema.json create mode 100644 registry/schema-org/TherapeuticProcedure.schema.json create mode 100644 registry/schema-org/Thesis.schema.json create mode 100644 registry/schema-org/Thing.schema.json create mode 100644 registry/schema-org/Ticket.schema.json create mode 100644 registry/schema-org/TieAction.schema.json create mode 100644 registry/schema-org/TierBenefitEnumeration.schema.json create mode 100644 registry/schema-org/TipAction.schema.json create mode 100644 registry/schema-org/TireShop.schema.json create mode 100644 registry/schema-org/TouristAttraction.schema.json create mode 100644 registry/schema-org/TouristDestination.schema.json create mode 100644 registry/schema-org/TouristInformationCenter.schema.json create mode 100644 registry/schema-org/TouristTrip.schema.json create mode 100644 registry/schema-org/ToyStore.schema.json create mode 100644 registry/schema-org/TrackAction.schema.json create mode 100644 registry/schema-org/TradeAction.schema.json create mode 100644 registry/schema-org/TrainReservation.schema.json create mode 100644 registry/schema-org/TrainStation.schema.json create mode 100644 registry/schema-org/TrainTrip.schema.json create mode 100644 registry/schema-org/TransferAction.schema.json create mode 100644 registry/schema-org/TravelAction.schema.json create mode 100644 registry/schema-org/TravelAgency.schema.json create mode 100644 registry/schema-org/TreatmentIndication.schema.json create mode 100644 registry/schema-org/Trip.schema.json create mode 100644 registry/schema-org/TypeAndQuantityNode.schema.json create mode 100644 registry/schema-org/UKNonprofitType.schema.json create mode 100644 registry/schema-org/URL.schema.json create mode 100644 registry/schema-org/USNonprofitType.schema.json create mode 100644 registry/schema-org/UnRegisterAction.schema.json create mode 100644 registry/schema-org/UnitPriceSpecification.schema.json create mode 100644 registry/schema-org/UpdateAction.schema.json delete mode 100644 registry/schema-org/Url.json create mode 100644 registry/schema-org/UseAction.schema.json create mode 100644 registry/schema-org/UserBlocks.schema.json create mode 100644 registry/schema-org/UserCheckins.schema.json create mode 100644 registry/schema-org/UserComments.schema.json create mode 100644 registry/schema-org/UserDownloads.schema.json create mode 100644 registry/schema-org/UserInteraction.schema.json create mode 100644 registry/schema-org/UserLikes.schema.json create mode 100644 registry/schema-org/UserPageVisits.schema.json create mode 100644 registry/schema-org/UserPlays.schema.json create mode 100644 registry/schema-org/UserPlusOnes.schema.json create mode 100644 registry/schema-org/UserReview.schema.json create mode 100644 registry/schema-org/UserTweets.schema.json create mode 100644 registry/schema-org/VacationRental.schema.json create mode 100644 registry/schema-org/Vehicle.schema.json create mode 100644 registry/schema-org/Vein.schema.json create mode 100644 registry/schema-org/Vessel.schema.json create mode 100644 registry/schema-org/VeterinaryCare.schema.json create mode 100644 registry/schema-org/VideoGallery.schema.json create mode 100644 registry/schema-org/VideoGame.schema.json create mode 100644 registry/schema-org/VideoGameClip.schema.json create mode 100644 registry/schema-org/VideoGameSeries.schema.json create mode 100644 registry/schema-org/VideoObject.schema.json create mode 100644 registry/schema-org/VideoObjectSnapshot.schema.json create mode 100644 registry/schema-org/ViewAction.schema.json create mode 100644 registry/schema-org/VirtualLocation.schema.json create mode 100644 registry/schema-org/VisualArtsEvent.schema.json create mode 100644 registry/schema-org/VisualArtwork.schema.json create mode 100644 registry/schema-org/VitalSign.schema.json create mode 100644 registry/schema-org/Volcano.schema.json create mode 100644 registry/schema-org/VoteAction.schema.json create mode 100644 registry/schema-org/WPAdBlock.schema.json create mode 100644 registry/schema-org/WPFooter.schema.json create mode 100644 registry/schema-org/WPHeader.schema.json create mode 100644 registry/schema-org/WPSideBar.schema.json create mode 100644 registry/schema-org/WantAction.schema.json create mode 100644 registry/schema-org/WarrantyPromise.schema.json create mode 100644 registry/schema-org/WarrantyScope.schema.json create mode 100644 registry/schema-org/WatchAction.schema.json create mode 100644 registry/schema-org/Waterfall.schema.json create mode 100644 registry/schema-org/WearAction.schema.json create mode 100644 registry/schema-org/WearableMeasurementTypeEnumeration.schema.json create mode 100644 registry/schema-org/WearableSizeGroupEnumeration.schema.json create mode 100644 registry/schema-org/WearableSizeSystemEnumeration.schema.json create mode 100644 registry/schema-org/WebAPI.schema.json create mode 100644 registry/schema-org/WebApplication.schema.json create mode 100644 registry/schema-org/WebContent.schema.json create mode 100644 registry/schema-org/WebPage.schema.json create mode 100644 registry/schema-org/WebPageElement.schema.json create mode 100644 registry/schema-org/WebSite.schema.json create mode 100644 registry/schema-org/WholesaleStore.schema.json create mode 100644 registry/schema-org/WinAction.schema.json create mode 100644 registry/schema-org/Winery.schema.json create mode 100644 registry/schema-org/WorkBasedProgram.schema.json create mode 100644 registry/schema-org/WorkersUnion.schema.json create mode 100644 registry/schema-org/WriteAction.schema.json create mode 100644 registry/schema-org/XPathType.schema.json create mode 100644 registry/schema-org/Zoo.schema.json create mode 100644 registry/schemas.go create mode 100644 registry/templates.go rename registry/templates/{recipe.marka => Recipe.marka} (69%) create mode 100644 registry/templates/_default.marka create mode 100644 registry/templates_test.go create mode 100644 template/blocks.go rename {parser/blocks => template}/codecs.go (97%) create mode 100644 template/compile.go create mode 100644 template/compile_test.go create mode 100644 template/go.mod create mode 100644 template/go.sum create mode 100644 template/structs.go diff --git a/go.work b/go.work index 782dcfe..d42da06 100644 --- a/go.work +++ b/go.work @@ -4,4 +4,5 @@ use ( ./parser ./registry ./renderer + ./template ) diff --git a/go.work.sum b/go.work.sum new file mode 100644 index 0000000..213f195 --- /dev/null +++ b/go.work.sum @@ -0,0 +1,4 @@ +github.com/dlclark/regexp2 v1.11.0/go.mod h1:DHkYz0B9wPfa6wondMfaivmHpzrQ3v9q8cnmRbL6yW8= +golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= diff --git a/parser/blocks.go b/parser/blocks.go deleted file mode 100644 index b8a9b38..0000000 --- a/parser/blocks.go +++ /dev/null @@ -1,74 +0,0 @@ -package parser - -import ( - "fmt" - - "git.max-richter.dev/max/marka/parser/blocks" -) - -// ExtractBlocks scans once, emitting: -// - data blocks: inner content between a line that's exactly "{" and a line that's exactly "}" -// - matching blocks: gaps between data blocks (excluding the brace lines themselves) -func ExtractBlocks(template string) ([]blocks.TemplateBlock, error) { - var out []blocks.TemplateBlock - var curlyIndex int - - const CLOSING = '}' - const OPENING = '{' - - var start int - var blockType blocks.BlockType - - if len(template) > 0 && template[0] == OPENING { - curlyIndex = 1 - blockType = blocks.DataBlock - } else { - blockType = blocks.MatchingBlock - } - - for i, r := range template { - - var nextCurlyIndex = curlyIndex - - switch r { - case OPENING: - nextCurlyIndex++ - case CLOSING: - nextCurlyIndex-- - } - - var nextChar rune = ' ' - if i+1 < len(template) { - nextChar = rune(template[i+1]) - } - - if curlyIndex == 0 && nextCurlyIndex == 1 { - block, err := blocks.ParseTemplateBlock(template[start:i], blockType) - if err != nil { - return nil, fmt.Errorf("Failed to parse block: %w", err) - } - out = append(out, block) - start = i - blockType = blocks.DataBlock - } else if curlyIndex == 1 && nextCurlyIndex == 0 { - - block, err := blocks.ParseTemplateBlock(template[start:i+1], blockType) - if err != nil { - return nil, fmt.Errorf("Failed to parse block: %w", err) - } - out = append(out, block) - - if nextChar == OPENING { - start = i + 1 - blockType = blocks.DataBlock - } else { - start = i + 1 - blockType = blocks.MatchingBlock - } - } - - curlyIndex = nextCurlyIndex - } - - return out, nil -} diff --git a/parser/blocks/block_list.go b/parser/blocks/block_list.go deleted file mode 100644 index a6c98a4..0000000 --- a/parser/blocks/block_list.go +++ /dev/null @@ -1,5 +0,0 @@ -package blocks - -func (b TemplateBlock) ParseListBlock(input string) (key string, value any, error error) { - return "", nil, nil -} diff --git a/parser/blocks/block_yaml.go b/parser/blocks/block_yaml.go deleted file mode 100644 index 9417045..0000000 --- a/parser/blocks/block_yaml.go +++ /dev/null @@ -1,18 +0,0 @@ -package blocks - -import ( - "fmt" - - "go.yaml.in/yaml/v4" -) - -func (b TemplateBlock) ParseYamlBlock(input string) (key string, value any, error error) { - - res := make(map[string]any) - err := yaml.Unmarshal([]byte(input), &res) - if err != nil { - return "", nil, fmt.Errorf("failed to parse yaml: %w", err) - } - - return "", nil, nil -} diff --git a/parser/blocks/blocks.go b/parser/blocks/blocks.go deleted file mode 100644 index 91632c5..0000000 --- a/parser/blocks/blocks.go +++ /dev/null @@ -1,80 +0,0 @@ -package blocks - -import ( - "strings" -) - -// TemplateType represents whether a template is short, long, or invalid. -type TemplateType int - -const ( - InvalidTemplate TemplateType = iota - ShortTemplate - ExtendedTemplate -) - -// DetectTemplateType checks if the template is short or long. -func DetectTemplateType(tmpl string) TemplateType { - trimmed := strings.TrimSpace(tmpl) - - // Short type: starts with "{" and ends with "}" on a single line, - // and contains "|" or "," inside for inline definition - // Matchs for example { name | text,required } - if strings.HasPrefix(trimmed, "{") && - strings.HasSuffix(trimmed, "}") && - !strings.Contains(trimmed, "\n") { - return ShortTemplate - } - - // Long type: multiline and contains keys like "path:" or "codec:" inside - // Matches for example: - // { - // path: name - // codec: text - // required: true - // } - if strings.Contains(trimmed, "\n") && - (strings.Contains(trimmed, "path:") || strings.Contains(trimmed, "codec:")) { - return ExtendedTemplate - } - - return InvalidTemplate -} - -type BlockType string - -const ( - DataBlock BlockType = "data" // content between lines "{" and "}" - MatchingBlock BlockType = "matching" // everything outside data blocks -) - -type BlockField struct { - Path string - CodecType CodecType - Required bool -} - -type TemplateBlock struct { - Type BlockType - Path string - Codec CodecType - Required bool - Fields []BlockField - content string -} - -func (b TemplateBlock) GetContent() string { - return b.content -} - -func (p *TemplateBlock) Parse(input string) (key string, value any, err error) { - switch p.Codec { - case CodecText: - return p.Path, input, nil - case CodecYaml: - return p.ParseYamlBlock(input) - case CodecList: - return p.ParseListBlock(input) - } - return p.Path, "", nil -} diff --git a/parser/blocks/template.go b/parser/blocks/template.go deleted file mode 100644 index 39d4338..0000000 --- a/parser/blocks/template.go +++ /dev/null @@ -1,141 +0,0 @@ -package blocks - -import ( - "fmt" - "strings" - - "go.yaml.in/yaml/v4" -) - -func cleanTemplate(input string) string { - s := strings.TrimSpace(input) - s = strings.TrimPrefix(s, "{") - s = strings.TrimSuffix(s, "}") - return s -} - -func parseShortTemplate(input string) (TemplateBlock, error) { - - var split = strings.Split(cleanTemplate(input), "|") - if len(split) < 1 { - return TemplateBlock{}, fmt.Errorf("Invalid Short Template") - } - - block := TemplateBlock{ - Type: DataBlock, - Path: strings.TrimSpace(split[0]), - Codec: CodecText, - content: input, - } - - if len(split) > 1 { - var optionSplit = strings.Split(split[1], ",") - for _, option := range optionSplit { - switch strings.TrimSpace(option) { - case "required": - block.Required = true - case "number": - block.Codec = CodecNumber - } - } - } - - return block, nil -} - -type yamlBlock struct { - Path string `yaml:"path"` - Codec string `yaml:"codec"` - Required bool `yaml:"required,omitempty"` - Fields []yamlField `yaml:"fields"` - Item *struct { - Template string `yaml:"template,omitempty"` - } `yaml:"item,omitempty"` - Template string `yaml:"template,omitempty"` -} - -type yamlField struct { - Path string `yaml:"path"` - Value any `yaml:"value,omitempty"` - Codec string `yaml:"codec"` - Required bool `yaml:"required"` -} - -func parseYamlTemplate(input string) (block TemplateBlock, err error) { - - var blk yamlBlock - - cleaned := cleanTemplate(input) - - dec := yaml.NewDecoder(strings.NewReader(cleaned)) - dec.KnownFields(true) - - if err := dec.Decode(&blk); err != nil { - return block, err - } - - if blk.Path == "" { - return block, fmt.Errorf("missing top-level 'path'") - } - - if blk.Codec == "" { - blk.Codec = "text" - } - - codec, err := parseCodecType(blk.Codec) - if err != nil { - return block, fmt.Errorf("failed to parse codec: %w", err) - } - - var fields []BlockField - - for _, field := range blk.Fields { - if field.Path == "" { - return block, fmt.Errorf("failed to parse field: %v", field) - } - - if field.Codec == "" { - field.Codec = "text" - } - - fieldCodec, err := parseCodecType(field.Codec) - if err != nil { - return block, fmt.Errorf("failed to parse codec: %w", err) - } - - fields = append(fields, BlockField{ - Path: field.Path, - CodecType: fieldCodec, - Required: field.Required, - }) - - } - - return TemplateBlock{ - Type: DataBlock, - Path: blk.Path, - Codec: codec, - Fields: fields, - content: input, - }, nil -} - -func ParseTemplateBlock(template string, blockType BlockType) (block TemplateBlock, err error) { - - if blockType == MatchingBlock { - return TemplateBlock{ - Type: MatchingBlock, - content: template, - }, nil - } - - switch DetectTemplateType(template) { - case ShortTemplate: - return parseShortTemplate(template) - case ExtendedTemplate: - return parseYamlTemplate(template) - } - - return block, fmt.Errorf("Invalid Template") - -} diff --git a/parser/blocks_test.go b/parser/blocks_test.go deleted file mode 100644 index 13f1bbb..0000000 --- a/parser/blocks_test.go +++ /dev/null @@ -1,55 +0,0 @@ -package parser_test - -import ( - "testing" - - "git.max-richter.dev/max/marka/parser" - "git.max-richter.dev/max/marka/parser/blocks" - "git.max-richter.dev/max/marka/registry" -) - -func TestExtractBlocks(t *testing.T) { - src, err := registry.GetTemplate("recipe") - if err != nil { - t.Errorf("Failed to extract blocks: %s", err.Error()) - t.FailNow() - } - - templateBlocks, err := parser.ExtractBlocks(src) - if err != nil { - t.Errorf("Failed to extract blocks: %s", err.Error()) - t.FailNow() - } - - expected := []struct { - Type blocks.BlockType - Content string - }{ - {blocks.MatchingBlock, "---\n"}, - {blocks.DataBlock, "{\n path: .\n codec: yaml\n fields:\n - path: name\n codec: text\n required: true\n - path: image\n codec: text\n required: true\n - path: author.@type\n codec: const\n value: Person\n - path: author.name\n codec: text\n - path: datePublished\n codec: text\n - path: description\n codec: text\n - path: prepTime\n codec: text\n - path: cookTime\n codec: text\n - path: recipeYield\n codec: text\n}"}, - {blocks.MatchingBlock, "\n---\n\n# "}, - {blocks.DataBlock, "{ name | text,required }"}, - {blocks.MatchingBlock, "\n\n"}, - {blocks.DataBlock, "{ description | text }"}, - {blocks.MatchingBlock, "\n\n## Ingredients\n"}, - {blocks.DataBlock, "{\n path: recipeIngredient\n codec: list\n required: true\n item:\n template: \"- { . }\"\n}"}, - {blocks.MatchingBlock, "\n\n## Steps\n"}, - {blocks.DataBlock, "{\n path: recipeInstructions\n codec: list\n required: true\n item:\n template: \"{ @index }. { . }\"\n}"}, - } - - if len(templateBlocks) != len(expected) { - t.Fatalf("expected %d blocks, got %d", len(expected), len(templateBlocks)) - } - - for i, b := range templateBlocks { - exp := expected[i] - if b.Type != exp.Type { - t.Errorf("Block#%d Type '%s' did not match expected type '%s'", i, b.Type, exp.Type) - } - content := b.GetContent() - if content != exp.Content { - t.Errorf("Block#%d Content '%s' did not match expected Content: '%s'", i, content, exp.Content) - } - } - -} diff --git a/parser/decoders/decoder.go b/parser/decoders/decoder.go new file mode 100644 index 0000000..f52bdb8 --- /dev/null +++ b/parser/decoders/decoder.go @@ -0,0 +1,41 @@ +// Package decoders contains functions for parsing template.Block to a string. +package decoders + +import ( + "fmt" + + "git.max-richter.dev/max/marka/parser/matcher" + "git.max-richter.dev/max/marka/parser/utils" + "git.max-richter.dev/max/marka/template" +) + +func ParseBlock(input string, block template.Block) (any, error) { + switch block.Codec { + case template.CodecText: + return input, nil + case template.CodecYaml: + return Yaml(input, block) + case template.CodecList: + return List(input, block) + } + return nil, fmt.Errorf("unknown codec: %s", block.Codec) +} + +func Parse(matches []matcher.Block) (any, error) { + var result any + + for _, m := range matches { + if m.Block.Path == "@index" { + continue + } + + input := m.GetContent() + value, err := ParseBlock(input, m.Block) + if err != nil { + return nil, fmt.Errorf("failed to parse block(%s): %w", m.Block.Path, err) + } + result = utils.SetPathValue(m.Block.Path, value, result) + } + + return result, nil +} diff --git a/parser/decoders/decoder_test.go b/parser/decoders/decoder_test.go new file mode 100644 index 0000000..3a98e75 --- /dev/null +++ b/parser/decoders/decoder_test.go @@ -0,0 +1,56 @@ +package decoders_test + +import ( + "encoding/json" + "fmt" + "testing" + + "git.max-richter.dev/max/marka/parser/decoders" + "git.max-richter.dev/max/marka/parser/matcher" + "git.max-richter.dev/max/marka/parser/utils" + "git.max-richter.dev/max/marka/registry" + "git.max-richter.dev/max/marka/template" +) + +func TestParseBaguette(t *testing.T) { + recipeMd := utils.ReadTestDataFile(t, "baguette.md") + + templateContent, err := registry.GetTemplate("Recipe") + if err != nil { + t.Fatalf("Err: %s", err) + } + + blocks, err := template.CompileTemplate(templateContent) + if err != nil { + t.Fatalf("Err: %s", err) + } + + matches := matcher.MatchBlocksFuzzy(recipeMd, blocks, 0.3) + parsed, err := decoders.Parse(matches) + if err != nil { + t.Fatalf("Err: %s", err) + } + expected := map[string]any{ + "name": "Baguette", + "description": "My favourite baguette recipe", + "recipeIngredient": []string{"Flour", "Water", "Salt"}, + "recipeInstructions": []string{ + "Mix Flour Water and Salt", + "Bake the bread", + }, + } + + out, _ := json.MarshalIndent(parsed, "", " ") + fmt.Printf("Parsed: \n%s\n", string(out)) + + outMap, ok := parsed.(map[string]any) + if !ok { + t.Fatalf("expected parsed to be map[string]any, got %T", parsed) + } + + for k, v := range expected { + if fmt.Sprintf("%v", outMap[k]) != fmt.Sprintf("%v", v) { + t.Errorf("Expected %v but got %v", v, outMap[k]) + } + } +} diff --git a/parser/decoders/list.go b/parser/decoders/list.go new file mode 100644 index 0000000..c1ae095 --- /dev/null +++ b/parser/decoders/list.go @@ -0,0 +1,31 @@ +package decoders + +import ( + "fmt" + "strings" + + "git.max-richter.dev/max/marka/parser/matcher" + "git.max-richter.dev/max/marka/template" +) + +func List(input string, block template.Block) (value any, error error) { + blocks, err := template.CompileTemplate(block.ListTemplate) + if err != nil { + return nil, fmt.Errorf("cannot extract blocks: %w", err) + } + + var out []any + + for line := range strings.SplitSeq(strings.TrimSuffix(input, "\n"), "\n") { + matches := matcher.MatchBlocksFuzzy(line, blocks, 0.3) + + res, err := Parse(matches) + if err != nil { + return nil, fmt.Errorf("could not match blocks: %w", err) + } + + out = append(out, res) + } + + return out, nil +} diff --git a/parser/decoders/list_test.go b/parser/decoders/list_test.go new file mode 100644 index 0000000..a3ced26 --- /dev/null +++ b/parser/decoders/list_test.go @@ -0,0 +1,90 @@ +package decoders_test + +import ( + "reflect" + "testing" + + "git.max-richter.dev/max/marka/parser/decoders" + "git.max-richter.dev/max/marka/template" +) + +func TestDecodeListObject(t *testing.T) { + templateBlock := template.Block{ + Path: "ingredients", + Codec: template.CodecList, + ListTemplate: "- { amount } { type }", + } + input := "- 10g flour\n- 1/2cup water\n- 1tsp salt" + + parsed, err := decoders.List(input, templateBlock) + if err != nil { + t.Fatalf("Err: %s", err) + } + + want := []any{ + map[string]any{ + "amount": "10g", + "type": "flour", + }, + map[string]any{ + "amount": "1/2cup", + "type": "water", + }, + map[string]any{ + "amount": "1tsp", + "type": "salt", + }, + } + + if !reflect.DeepEqual(parsed, want) { + t.Fatalf("unexpected result.\n got: %#v\nwant: %#v", parsed, want) + } +} + +func TestDecodeListString(t *testing.T) { + templateBlock := template.Block{ + Path: "ingredients", + Codec: template.CodecList, + ListTemplate: "- { . }", + } + input := "- flour\n- water\n- salt" + + parsed, err := decoders.List(input, templateBlock) + if err != nil { + t.Fatalf("Err: %s", err) + } + + want := []any{ + "flour", + "water", + "salt", + } + + if !reflect.DeepEqual(parsed, want) { + t.Fatalf("unexpected result.\n got: %#v\nwant: %#v", parsed, want) + } +} + +func TestDecodeNumberedListString(t *testing.T) { + templateBlock := template.Block{ + Path: "ingredients", + Codec: template.CodecList, + ListTemplate: "{ @index } { . }", + } + input := "1. Wash and dry the lettuce.\n2. Halve the cherry tomatoes.\n3. Toss with olive oil and salt." + + parsed, err := decoders.List(input, templateBlock) + if err != nil { + t.Fatalf("Err: %s", err) + } + + want := []any{ + "Wash and dry the lettuce.", + "Halve the cherry tomatoes.", + "Toss with olive oil and salt.", + } + + if !reflect.DeepEqual(parsed, want) { + t.Fatalf("unexpected result.\n got: %#v\nwant: %#v", parsed, want) + } +} diff --git a/parser/decoders/yaml.go b/parser/decoders/yaml.go new file mode 100644 index 0000000..f3b6978 --- /dev/null +++ b/parser/decoders/yaml.go @@ -0,0 +1,32 @@ +package decoders + +import ( + "fmt" + + "git.max-richter.dev/max/marka/parser/utils" + "git.max-richter.dev/max/marka/template" + "go.yaml.in/yaml/v4" +) + +func Yaml(input string, block template.Block) (value any, error error) { + res := make(map[string]any) + err := yaml.Unmarshal([]byte(input), &res) + if err != nil { + return nil, fmt.Errorf("failed to parse yaml '%q': %w", input, err) + } + + var out any + for _, f := range block.Fields { + if f.CodecType == template.CodecConst { + if f.Value != nil { + out = utils.SetPathValue(f.Path, f.Value, out) + } + } else { + if value, ok := res[f.Path]; ok { + out = utils.SetPathValue(f.Path, value, out) + } + } + } + + return out, nil +} diff --git a/parser/go.mod b/parser/go.mod index 9263f53..5528628 100644 --- a/parser/go.mod +++ b/parser/go.mod @@ -4,4 +4,7 @@ go 1.24.3 require github.com/agext/levenshtein v1.2.3 -require go.yaml.in/yaml/v4 v4.0.0-rc.1 // indirect +require ( + github.com/google/go-cmp v0.7.0 + go.yaml.in/yaml/v4 v4.0.0-rc.1 // indirect +) diff --git a/parser/go.sum b/parser/go.sum index 3a0ce14..01f9684 100644 --- a/parser/go.sum +++ b/parser/go.sum @@ -1,4 +1,6 @@ github.com/agext/levenshtein v1.2.3 h1:YB2fHEn0UJagG8T1rrWknE3ZQzWM06O8AMAatNn7lmo= github.com/agext/levenshtein v1.2.3/go.mod h1:JEDfjyjHDjOF/1e4FlBE/PkbqA9OfWu2ki2W0IB5558= +github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= +github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= go.yaml.in/yaml/v4 v4.0.0-rc.1 h1:4J1+yLKUIPGexM/Si+9d3pij4hdc7aGO04NhrElqXbY= go.yaml.in/yaml/v4 v4.0.0-rc.1/go.mod h1:CBdeces52/nUXndfQ5OY8GEQuNR9uEEOJPZj/Xq5IzU= diff --git a/parser/main.go b/parser/main.go index 8a698e0..6de0cb4 100644 --- a/parser/main.go +++ b/parser/main.go @@ -2,16 +2,72 @@ // structured JSON objects that conform to a JSON Schema. package parser -func ParseFile(markdownContent string) (map[string]any, error) { +import ( + "fmt" + "strings" - // _schema, err := registry.GetTemplate("Recipe") - // if err != nil { - // return nil, fmt.Errorf("could not get schema: %w", err) - // } + "git.max-richter.dev/max/marka/parser/decoders" + "git.max-richter.dev/max/marka/parser/matcher" + "git.max-richter.dev/max/marka/registry" + "git.max-richter.dev/max/marka/template" +) - // Idea is to split the template into blocks, either "matching" blocks which are simple strings. - // Or "data" blocks which match the content. Then i want to soft match the "matching" blocks and "data" blocks to the template. - // The "matching" blocks should soft match with a levenshtein distance +func DetectType(markdownContent string) (string, error) { + defaultSchemaContent, err := registry.GetTemplate("_default") + if err != nil { + return "", fmt.Errorf("could not get schema: %w", err) + } - return map[string]any{}, nil + defaultSchema, err := template.CompileTemplate(defaultSchemaContent) + if err != nil { + return "", fmt.Errorf("failed to compile template: %w", err) + } + + blocks := matcher.MatchBlocksFuzzy(markdownContent, defaultSchema, 0.3) + + result, err := decoders.Parse(blocks) + if err != nil { + return "", fmt.Errorf("failed to parse blocks: %w", err) + } + + if result, ok := result.(map[string]any); ok { + if contentType, ok := result["@type"]; ok { + return contentType.(string), nil + } else { + return "", fmt.Errorf("frontmatter did not contain '@type'") + } + } else { + return "", fmt.Errorf("could not parse frontmatter") + } +} + +func ParseFile(markdownContent string) (any, error) { + markdownContent = strings.TrimSuffix( + strings.ReplaceAll(markdownContent, "@type:", `"@type":`), + "\n", + ) + + contentType, err := DetectType(markdownContent) + if err != nil { + return nil, fmt.Errorf("could not detect type: %w", err) + } + + templateContent, err := registry.GetTemplate(contentType) + if err != nil { + return nil, fmt.Errorf("could not get schema: %w", err) + } + + template, err := template.CompileTemplate(templateContent) + if err != nil { + return nil, fmt.Errorf("failed to compile template: %w", err) + } + + blocks := matcher.MatchBlocksFuzzy(markdownContent, template, 0.3) + + result, err := decoders.Parse(blocks) + if err != nil { + return nil, fmt.Errorf("failed to parse blocks: %w", err) + } + + return result, nil } diff --git a/parser/main_test.go b/parser/main_test.go index 78a631c..403bb10 100644 --- a/parser/main_test.go +++ b/parser/main_test.go @@ -4,10 +4,10 @@ import ( "encoding/json" "os" "path/filepath" - "reflect" "testing" "git.max-richter.dev/max/marka/parser" + "github.com/google/go-cmp/cmp" ) func TestParseRecipe_Golden(t *testing.T) { @@ -34,10 +34,7 @@ func TestParseRecipe_Golden(t *testing.T) { t.Fatalf("unmarshal expected.json: %v", err) } - // Deep structural compare - if !reflect.DeepEqual(want, got) { - gb, _ := json.MarshalIndent(got, "", " ") - wb, _ := json.MarshalIndent(want, "", " ") - t.Fatalf("parsed JSON mismatch\n--- got ---\n%s\n--- want ---\n%s", string(gb), string(wb)) + if diff := cmp.Diff(want, got); diff != "" { + t.Fatalf("JSON mismatch (-want +got):\n%s", diff) } } diff --git a/parser/matcher.go b/parser/matcher/matcher.go similarity index 62% rename from parser/matcher.go rename to parser/matcher/matcher.go index 86c16a2..ac1ac16 100644 --- a/parser/matcher.go +++ b/parser/matcher/matcher.go @@ -1,19 +1,22 @@ -package parser +// Package matcher contains functions for matching template.Block to a string. +package matcher import ( "math" - "git.max-richter.dev/max/marka/parser/blocks" + "git.max-richter.dev/max/marka/parser/utils" + "git.max-richter.dev/max/marka/template" "github.com/agext/levenshtein" ) -type MatchBlock struct { +// Block matches a template.Block to a section inside a string +type Block struct { Start, End int - Block blocks.TemplateBlock + Block template.Block src *string } -func (m MatchBlock) GetContent() string { +func (m Block) GetContent() string { if m.src == nil || m.Start < 0 || m.End > len(*m.src) || m.Start > m.End { return "" } @@ -23,18 +26,18 @@ func (m MatchBlock) GetContent() string { // MatchBlocksFuzzy finds anchor positions for all BlockMatching blocks using // Levenshtein distance (tolerant matching), then returns ONLY the BlockData // segments as gaps between those anchors. -func MatchBlocksFuzzy(markdown string, templateBlocks []blocks.TemplateBlock, maxDist float64) []MatchBlock { - var out []MatchBlock +func MatchBlocksFuzzy(markdown string, templateBlocks []template.Block, maxDist float64) []Block { + var out []Block - var lastIndex = 0 + lastIndex := 0 for i, b := range templateBlocks { - if b.Type == blocks.MatchingBlock { + if b.Type == template.MatchingBlock { start, end := FuzzyFind(markdown, lastIndex, b.GetContent(), 0.3) if end != -1 { if i > 0 { previousBlock := templateBlocks[i-1] - if previousBlock.Type == blocks.DataBlock { - out = append(out, MatchBlock{ + if previousBlock.Type == template.DataBlock { + out = append(out, Block{ Start: lastIndex, End: start, Block: previousBlock, @@ -48,14 +51,16 @@ func MatchBlocksFuzzy(markdown string, templateBlocks []blocks.TemplateBlock, ma } // Handle the last block - lastBlock := templateBlocks[len(templateBlocks)-1] - if lastBlock.Type == blocks.DataBlock { - out = append(out, MatchBlock{ - Start: lastIndex, - End: len(markdown), - Block: lastBlock, - src: &markdown, - }) + if len(templateBlocks) > 0 { + lastBlock := templateBlocks[len(templateBlocks)-1] + if lastBlock.Type == template.DataBlock { + out = append(out, Block{ + Start: lastIndex, + End: len(markdown), + Block: lastBlock, + src: &markdown, + }) + } } return out @@ -72,7 +77,7 @@ func FuzzyFind(haystack string, from int, needle string, maxDist float64) (start sub := haystack[i : i+windowSize] dist := levenshtein.Distance(sub, needle, nil) maxLen := max(needleLen, windowSize) - norm := float64(dist)/float64(maxLen) + float64(abs(windowSize-needleLen))*0.01/float64(maxLen) + norm := float64(dist)/float64(maxLen) + float64(utils.Abs(windowSize-needleLen))*0.01/float64(maxLen) if norm < bestDist { bestStart, bestEnd, bestDist = i, i+windowSize, norm @@ -88,17 +93,3 @@ func FuzzyFind(haystack string, from int, needle string, maxDist float64) (start } return -1, -1 } - -func abs(x int) int { - if x < 0 { - return -x - } - return x -} - -func max(a, b int) int { - if a > b { - return a - } - return b -} diff --git a/parser/matcher_test.go b/parser/matcher/matcher_test.go similarity index 69% rename from parser/matcher_test.go rename to parser/matcher/matcher_test.go index 3e87c68..49ca67d 100644 --- a/parser/matcher_test.go +++ b/parser/matcher/matcher_test.go @@ -1,14 +1,17 @@ -package parser_test +package matcher_test import ( + "fmt" "testing" - "git.max-richter.dev/max/marka/parser" + "git.max-richter.dev/max/marka/parser/matcher" + "git.max-richter.dev/max/marka/parser/utils" "git.max-richter.dev/max/marka/registry" + "git.max-richter.dev/max/marka/template" ) func TestFuzzyFindAll(t *testing.T) { - recipeMd := readTestDataFile(t, "baguette.md") + recipeMd := utils.ReadTestDataFile(t, "baguette.md") tests := []struct { Needle string @@ -25,24 +28,32 @@ func TestFuzzyFindAll(t *testing.T) { } for _, test := range tests { - start, end := parser.FuzzyFind(recipeMd, test.StartIndex, test.Needle, 0.3) // allow 50% error + start, end := matcher.FuzzyFind(recipeMd, test.StartIndex, test.Needle, 0.3) // allow 50% error if start != test.Start || end != test.End { t.Errorf("Start or end do not match: Needle=%q Start=%d/%d End=%d/%d", test.Needle, test.Start, start, test.End, end) } } - } func TestFuzzyBlockMatch(t *testing.T) { - recipeMd := readTestDataFile(t, "baguette.md") - schemaMd, err := registry.GetTemplate("recipe") + recipeMd := utils.ReadTestDataFile(t, "baguette.md") + schemaMd, err := registry.GetTemplate("Recipe") if err != nil { t.Errorf("Failed to load template: %s", err.Error()) t.FailNow() } - blocks, _ := parser.ExtractBlocks(schemaMd) - matches := parser.MatchBlocksFuzzy(recipeMd, blocks, 0.3) + blocks, err := template.CompileTemplate(schemaMd) + if err != nil { + t.Errorf("Failed to compile template: %s", err.Error()) + t.FailNow() + } + + for _, b := range blocks { + fmt.Printf("block: %#v\n", b) + } + + matches := matcher.MatchBlocksFuzzy(recipeMd, blocks, 0.3) expected := []struct { value string @@ -73,5 +84,4 @@ func TestFuzzyBlockMatch(t *testing.T) { t.Errorf("Match %d did not match expected: %q", i, m.GetContent()) } } - } diff --git a/parser/parser.go b/parser/parser.go deleted file mode 100644 index fc9c640..0000000 --- a/parser/parser.go +++ /dev/null @@ -1,15 +0,0 @@ -package parser - -func Parse(blocks []MatchBlock) map[string]any { - - result := make(map[string]any) - - for _, b := range blocks { - input := b.GetContent() - - key, value, _ := b.Block.Parse(input) - result[key] = value - } - - return result -} diff --git a/parser/parser_test.go b/parser/parser_test.go deleted file mode 100644 index 01d5387..0000000 --- a/parser/parser_test.go +++ /dev/null @@ -1,42 +0,0 @@ -package parser_test - -import ( - "fmt" - "testing" - - "git.max-richter.dev/max/marka/parser" - "git.max-richter.dev/max/marka/registry" -) - -func TestParseBaguette(t *testing.T) { - recipeMd := readTestDataFile(t, "baguette.md") - - template, err := registry.GetTemplate("recipe") - if err != nil { - t.Fatalf("Err: %s", err) - } - - blocks, err := parser.ExtractBlocks(template) - if err != nil { - t.Fatalf("Err: %s", err) - } - - matches := parser.MatchBlocksFuzzy(recipeMd, blocks, 0.3) - parsed := parser.Parse(matches) - expected := map[string]any{ - "name": "Baguette", - "description": "My favourite baguette recipe", - "recipeIngredient": []string{"Flour", "Water", "Salt"}, - // "recipeInstructions": []string{ - // "Mix Flour Water and Salt", - // "Bake the bread", - // }, - } - - for k, v := range expected { - if fmt.Sprintf("%v", parsed[k]) != fmt.Sprintf("%v", v) { - t.Errorf("Expected %v but got %v", v, parsed[k]) - } - } - -} diff --git a/parser/testdata/recipe_salad/input.md b/parser/testdata/recipe_salad/input.md index d36c36e..a7e941a 100644 --- a/parser/testdata/recipe_salad/input.md +++ b/parser/testdata/recipe_salad/input.md @@ -1,8 +1,7 @@ --- @type: Recipe image: https://example.com/salad.jpg -author: Alex Chef -datePublished: 2025-08-12 +author.name: Alex Chef prepTime: PT10M cookTime: PT0M recipeYield: 2 servings diff --git a/parser/testdata/recipe_salad/output.json b/parser/testdata/recipe_salad/output.json index fe31274..6ff5606 100644 --- a/parser/testdata/recipe_salad/output.json +++ b/parser/testdata/recipe_salad/output.json @@ -1,5 +1,5 @@ { - "@context": "https://schema.org/", + "@context": "https://schema.org", "@type": "Recipe", "name": "Simple Salad", "image": "https://example.com/salad.jpg", @@ -7,7 +7,6 @@ "@type": "Person", "name": "Alex Chef" }, - "datePublished": "2025-08-12", "description": "A quick green salad.", "prepTime": "PT10M", "cookTime": "PT0M", diff --git a/parser/utils/math.go b/parser/utils/math.go new file mode 100644 index 0000000..58abff0 --- /dev/null +++ b/parser/utils/math.go @@ -0,0 +1,8 @@ +package utils + +func Abs(x int) int { + if x < 0 { + return -x + } + return x +} diff --git a/parser/testutils_test.go b/parser/utils/read_test_data.go similarity index 57% rename from parser/testutils_test.go rename to parser/utils/read_test_data.go index 6a5fd88..850838d 100644 --- a/parser/testutils_test.go +++ b/parser/utils/read_test_data.go @@ -1,4 +1,4 @@ -package parser_test +package utils import ( "os" @@ -6,8 +6,8 @@ import ( "testing" ) -func readTestDataFile(t *testing.T, fileName string) string { - path := filepath.Join("testdata", fileName) +func ReadTestDataFile(t *testing.T, fileName string) string { + path := filepath.Join("../testdata", fileName) data, err := os.ReadFile(path) if err != nil { t.Fatalf("failed to read test data file: %v", err) diff --git a/parser/utils/set_path_value.go b/parser/utils/set_path_value.go new file mode 100644 index 0000000..2ebbae2 --- /dev/null +++ b/parser/utils/set_path_value.go @@ -0,0 +1,65 @@ +// Package utils contains utility functions for the parser package. +package utils + +import ( + "maps" + "strings" +) + +// SetPathValue sets value at a dot-separated path in obj, creating maps as needed. +// If the path is only dots (e.g., "." or ".."): +// - when obj == nil -> returns value directly (e.g., "flour") +// - when obj is a map -> if value is a map[string]any, merge into obj; otherwise obj is unchanged. +// - otherwise -> returns obj unchanged. +func SetPathValue(path string, value any, obj any) any { + // Split and drop empty segments (so ".", "..", "" become no keys) + raw := strings.Split(path, ".") + keys := raw[:0] + for _, k := range raw { + if k != "" { + keys = append(keys, k) + } + } + + // Root case: no keys after trimming dots + if len(keys) == 0 { + if obj == nil { + return value + } + if m, ok := obj.(map[string]any); ok { + if mv, ok := value.(map[string]any); ok { + maps.Copy(m, mv) + } + return m + } + return obj + } + + // Ensure root is a map + var root map[string]any + if obj == nil { + root = map[string]any{} + } else if m, ok := obj.(map[string]any); ok { + root = m + } else { + // if obj is not a map, just overwrite it with a new map + root = map[string]any{} + } + + // Descend/construct maps + curr := root + for i, k := range keys { + if i == len(keys)-1 { + curr[k] = value + break + } + if next, ok := curr[k].(map[string]any); ok { + curr = next + continue + } + n := map[string]any{} + curr[k] = n + curr = n + } + return root +} diff --git a/parser/utils/set_path_value_test.go b/parser/utils/set_path_value_test.go new file mode 100644 index 0000000..5429eec --- /dev/null +++ b/parser/utils/set_path_value_test.go @@ -0,0 +1,132 @@ +package utils + +import ( + "fmt" + "reflect" + "testing" +) + +func TestSetPathValue_SingleKey(t *testing.T) { + input := map[string]any{} + got := SetPathValue("name", "Max", input) + + want := map[string]any{"name": "Max"} + + if !reflect.DeepEqual(got, want) { + t.Fatalf("unexpected map.\n got: %#v\nwant: %#v", got, want) + } +} + +func TestSetPathValue_DotSyntax(t *testing.T) { + input := map[string]any{} + meta := map[string]any{ + "name": "Max", + } + got := SetPathValue(".", meta, input) + + want := map[string]any{"name": "Max"} + + fmt.Printf("%+v\n", got) + + if !reflect.DeepEqual(got, want) { + t.Fatalf("unexpected map.\n got: %#v\nwant: %#v", got, want) + } +} + +func TestSetPathValue_DotSyntaxString(t *testing.T) { + var input any + meta := "flour" + + got := SetPathValue(".", meta, input) + + want := "flour" + + fmt.Printf("%+v\n", got) + + if !reflect.DeepEqual(got, want) { + t.Fatalf("unexpected map.\n got: %#v\nwant: %#v", got, want) + } +} + +func TestSetPathValue_NestedKeys_CreateMissingMaps(t *testing.T) { + input := map[string]any{} + got := SetPathValue("user.profile.name", "Max", input) + + // Desired behavior: create nested maps and set the value. + // NOTE: If this test fails, your implementation likely isn't descending into nested maps. + want := map[string]any{ + "user": map[string]any{ + "profile": map[string]any{ + "name": "Max", + }, + }, + } + + if !reflect.DeepEqual(got, want) { + t.Fatalf("unexpected map for nested keys.\n got: %#v\nwant: %#v", got, want) + } +} + +func TestSetPathValue_OverwriteExistingValue(t *testing.T) { + input := map[string]any{"foo": "old"} + got := SetPathValue("foo", "new", input) + + want := map[string]any{"foo": "new"} + + if !reflect.DeepEqual(got, want) { + t.Fatalf("unexpected map after overwrite.\n got: %#v\nwant: %#v", got, want) + } +} + +func TestSetPathValue_PartiallyExistingPath(t *testing.T) { + input := map[string]any{ + "user": map[string]any{ + "profile": map[string]any{}, + }, + } + got := SetPathValue("user.profile.age", 28, input) + + want := map[string]any{ + "user": map[string]any{ + "profile": map[string]any{ + "age": 28, + }, + }, + } + + if !reflect.DeepEqual(got, want) { + t.Fatalf("unexpected map with partially existing path.\n got: %#v\nwant: %#v", got, want) + } +} + +func TestSetPathValue_EmptySegmentsAreIgnored(t *testing.T) { + input := map[string]any{} + got := SetPathValue("a..b", 1, input) + + // Expected behavior (common-sense): treat empty segments as no-op and still set a.b = 1 + want := map[string]any{ + "a": map[string]any{ + "b": 1, + }, + } + + if !reflect.DeepEqual(got, want) { + t.Fatalf("unexpected map with empty segments.\n got: %#v\nwant: %#v", got, want) + } +} + +func TestSetPathValue_ComplexValueTypes(t *testing.T) { + input := map[string]any{} + val := []int{1, 2, 3} + got := SetPathValue("nums.list", val, input) + + want := map[string]any{ + "nums": map[string]any{ + "list": []int{1, 2, 3}, + }, + } + + if !reflect.DeepEqual(got, want) { + t.Fatalf("unexpected map with complex value types.\n got: %#v\nwant: %#v", got, want) + } +} diff --git a/registry/go.mod b/registry/go.mod index 61e060e..dd79f1b 100644 --- a/registry/go.mod +++ b/registry/go.mod @@ -1,3 +1,7 @@ module git.max-richter.dev/max/marka/registry go 1.24.3 + +require github.com/santhosh-tekuri/jsonschema/v6 v6.0.2 + +require golang.org/x/text v0.14.0 // indirect diff --git a/registry/go.sum b/registry/go.sum new file mode 100644 index 0000000..b46b517 --- /dev/null +++ b/registry/go.sum @@ -0,0 +1,4 @@ +github.com/santhosh-tekuri/jsonschema/v6 v6.0.2 h1:KRzFb2m7YtdldCEkzs6KqmJw4nqEVZGK7IN2kJkjTuQ= +github.com/santhosh-tekuri/jsonschema/v6 v6.0.2/go.mod h1:JXeL+ps8p7/KNMjDQk3TCwPpBy0wYklyWTfbkIzdIFU= +golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= +golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= diff --git a/registry/registry.go b/registry/registry.go deleted file mode 100644 index 31138a1..0000000 --- a/registry/registry.go +++ /dev/null @@ -1,48 +0,0 @@ -// Package registry provides functionality for managing and accessing embedded file systems and directories. -package registry - -import ( - "embed" - "io" - "io/fs" - "os" -) - -type Source interface { - Open(name string) (fs.File, error) - ReadFile(name string) ([]byte, error) - ReadDir(name string) ([]fs.DirEntry, error) -} - -type src struct{ fsys fs.FS } - -func (s src) Open(p string) (fs.File, error) { return s.fsys.Open(p) } -func (s src) ReadFile(p string) ([]byte, error) { return fs.ReadFile(s.fsys, p) } -func (s src) ReadDir(p string) ([]fs.DirEntry, error) { return fs.ReadDir(s.fsys, p) } - -func FromDir(path string) Source { return src{fsys: os.DirFS(path)} } - -//go:embed templates/* -var templates embed.FS - -//go:embed schema-org/* -var schemas embed.FS - -func GetTemplates() Source { - return src{fsys: templates} -} - -func GetTemplate(name string) (string, error) { - templateFile, err := templates.Open("templates/" + name + ".marka") - if err != nil { - return "", err - } - defer templateFile.Close() - - templateBytes, err := io.ReadAll(templateFile) - if err != nil { - return "", err - } - - return string(templateBytes), nil -} diff --git a/registry/schema-org/3DModel.schema.json b/registry/schema-org/3DModel.schema.json new file mode 100644 index 0000000..d34bc00 --- /dev/null +++ b/registry/schema-org/3DModel.schema.json @@ -0,0 +1,19 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:3DModel", + "title": "3DModel", + "description": "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]].", + "type": "object", + "allOf": [ + { + "description": "A media object, such as an image, video, audio, or text 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).", + "$ref": "schema:MediaObject" + } + ], + "properties": { + "isResizable": { + "description": "Whether the 3DModel allows resizing. For example, room layout applications often do not allow 3DModel elements to be resized to reflect reality.", + "type": "boolean" + } + } +} diff --git a/registry/schema-org/AMRadioChannel.schema.json b/registry/schema-org/AMRadioChannel.schema.json new file mode 100644 index 0000000..a86bc3d --- /dev/null +++ b/registry/schema-org/AMRadioChannel.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:AMRadioChannel", + "title": "AMRadioChannel", + "description": "A radio channel that uses AM.", + "type": "object", + "allOf": [ + { + "description": "A unique instance of a radio BroadcastService on a CableOrSatelliteService lineup.", + "$ref": "schema:RadioChannel" + } + ] +} diff --git a/registry/schema-org/APIReference.schema.json b/registry/schema-org/APIReference.schema.json new file mode 100644 index 0000000..928c50d --- /dev/null +++ b/registry/schema-org/APIReference.schema.json @@ -0,0 +1,44 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:APIReference", + "title": "APIReference", + "description": "Reference documentation for application programming interfaces (APIs).", + "type": "object", + "allOf": [ + { + "description": "A technical article - Example: How-to (task) topics, step-by-step, procedural troubleshooting, specifications, etc.", + "$ref": "schema:TechArticle" + } + ], + "properties": { + "assembly": { + "description": "Library file name, e.g., mscorlib.dll, system.web.dll.", + "type": "string" + }, + "assemblyVersion": { + "description": "Associated product/technology version. E.g., .NET Framework 4.5.", + "type": "string" + }, + "executableLibraryName": { + "description": "Library file name, e.g., mscorlib.dll, system.web.dll.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "programmingModel": { + "description": "Indicates whether API is managed or unmanaged.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "targetPlatform": { + "description": "Type of app development: phone, Metro style, desktop, XBox, etc.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + } + } +} diff --git a/registry/schema-org/AboutPage.schema.json b/registry/schema-org/AboutPage.schema.json new file mode 100644 index 0000000..b348cde --- /dev/null +++ b/registry/schema-org/AboutPage.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:AboutPage", + "title": "AboutPage", + "description": "Web page type: About page.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:WebPage" + } + ] +} diff --git a/registry/schema-org/AcceptAction.schema.json b/registry/schema-org/AcceptAction.schema.json new file mode 100644 index 0000000..ea1b44f --- /dev/null +++ b/registry/schema-org/AcceptAction.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:AcceptAction", + "title": "AcceptAction", + "description": "The act of committing to/adopting an object.\\n\\nRelated actions:\\n\\n* [[RejectAction]]: The antonym of AcceptAction.", + "type": "object", + "allOf": [ + { + "description": "The act of organizing tasks/objects/events by associating resources to it.", + "$ref": "schema:AllocateAction" + } + ] +} diff --git a/registry/schema-org/Accommodation.schema.json b/registry/schema-org/Accommodation.schema.json new file mode 100644 index 0000000..328486f --- /dev/null +++ b/registry/schema-org/Accommodation.schema.json @@ -0,0 +1,127 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Accommodation", + "title": "Accommodation", + "description": "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.\n", + "type": "object", + "allOf": [ + { + "description": "Entities that have a somewhat fixed, physical extension.", + "$ref": "schema:Place" + } + ], + "properties": { + "accommodationCategory": { + "description": "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).", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "accommodationFloorPlan": { + "description": "A floorplan of some [[Accommodation]].", + "oneOf": [ + { "$ref": "schema:FloorPlan" }, + { "type": "array", "items": { "$ref": "schema:FloorPlan" } } + ] + }, + "amenityFeature": { + "description": "An amenity feature (e.g. a characteristic or service) of the Accommodation. This generic property does not make a statement about whether the feature is included in an offer for the main accommodation or available at extra costs.", + "oneOf": [ + { "$ref": "schema:LocationFeatureSpecification" }, + { + "type": "array", + "items": { "$ref": "schema:LocationFeatureSpecification" } + } + ] + }, + "bed": { + "description": "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.\n 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.", + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:BedDetails" }, + { "$ref": "schema:BedType" } + ] + }, + "floorLevel": { + "description": "The floor level for an [[Accommodation]] in a multi-storey building. Since counting\n systems [vary internationally](https://en.wikipedia.org/wiki/Storey#Consecutive_number_floor_designations), the local system should be used where possible.", + "type": "string" + }, + "floorSize": { + "description": "The size of the accommodation, e.g. in square meter or squarefoot.\nTypical unit code(s): MTK for square meter, FTK for square foot, or YDK for square yard.", + "$ref": "schema:QuantitativeValue" + }, + "leaseLength": { + "description": "Length of the lease for some [[Accommodation]], either particular to some [[Offer]] or in some cases intrinsic to the property.", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "$comment": "https://schema.org/Duration" }, + { "$ref": "schema:QuantitativeValue" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "$comment": "https://schema.org/Duration" }, + { "$ref": "schema:QuantitativeValue" } + ] + } + } + ] + }, + "numberOfBathroomsTotal": { + "description": "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]].", + "type": "integer" + }, + "numberOfBedrooms": { + "description": "The total integer number of bedrooms in a some [[Accommodation]], [[ApartmentComplex]] or [[FloorPlan]].", + "anyOf": [{ "type": "number" }, { "$ref": "schema:QuantitativeValue" }] + }, + "numberOfFullBathrooms": { + "description": "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).", + "oneOf": [ + { "type": "number" }, + { "type": "array", "items": { "type": "number" } } + ] + }, + "numberOfPartialBathrooms": { + "description": "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). ", + "oneOf": [ + { "type": "number" }, + { "type": "array", "items": { "type": "number" } } + ] + }, + "numberOfRooms": { + "description": "The number of rooms (excluding bathrooms and closets) of the accommodation or lodging business.\nTypical 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.", + "anyOf": [{ "type": "number" }, { "$ref": "schema:QuantitativeValue" }] + }, + "occupancy": { + "description": "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).\nTypical unit code(s): C62 for person.", + "$ref": "schema:QuantitativeValue" + }, + "permittedUsage": { + "description": "Indications regarding the permitted usage of the accommodation.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "petsAllowed": { + "description": "Indicates whether pets are allowed to enter the accommodation or lodging business. More detailed information can be put in a text value.", + "anyOf": [{ "type": "boolean" }, { "type": "string" }] + }, + "tourBookingPage": { + "description": "A page providing information on how to book a tour of some [[Place]], such as an [[Accommodation]] or [[ApartmentComplex]] in a real estate setting, as well as other kinds of tours as appropriate.", + "oneOf": [ + { "type": "string", "format": "uri" }, + { "type": "array", "items": { "type": "string", "format": "uri" } } + ] + }, + "yearBuilt": { + "description": "The year an [[Accommodation]] was constructed. This corresponds to the [YearBuilt field in RESO](https://ddwiki.reso.org/display/DDW17/YearBuilt+Field). ", + "type": "number" + } + } +} diff --git a/registry/schema-org/AccountingService.schema.json b/registry/schema-org/AccountingService.schema.json new file mode 100644 index 0000000..5beabc7 --- /dev/null +++ b/registry/schema-org/AccountingService.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:AccountingService", + "title": "AccountingService", + "description": "Accountancy business.\\n\\nAs a [[LocalBusiness]] it can be described as a [[provider]] of one or more [[Service]]\\(s).\n ", + "type": "object", + "allOf": [ + { + "description": "Financial services business.", + "$ref": "schema:FinancialService" + } + ] +} diff --git a/registry/schema-org/AchieveAction.schema.json b/registry/schema-org/AchieveAction.schema.json new file mode 100644 index 0000000..8de8817 --- /dev/null +++ b/registry/schema-org/AchieveAction.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:AchieveAction", + "title": "AchieveAction", + "description": "The act of accomplishing something via previous efforts. It is an instantaneous action rather than an ongoing process.", + "type": "object", + "allOf": [ + { + "description": "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).", + "$ref": "schema:Action" + } + ] +} diff --git a/registry/schema-org/Action.schema.json b/registry/schema-org/Action.schema.json new file mode 100644 index 0000000..5ae7061 --- /dev/null +++ b/registry/schema-org/Action.schema.json @@ -0,0 +1,116 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Action", + "title": "Action", + "description": "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).", + "type": "object", + "allOf": [ + { "description": "The most generic type of item.", "$ref": "schema:Thing" } + ], + "properties": { + "actionProcess": { + "description": "Description of the process by which the action was performed.", + "oneOf": [ + { "$ref": "schema:HowTo" }, + { "type": "array", "items": { "$ref": "schema:HowTo" } } + ] + }, + "actionStatus": { + "description": "Indicates the current disposition of the Action.", + "oneOf": [ + { "$ref": "schema:ActionStatusType" }, + { "type": "array", "items": { "$ref": "schema:ActionStatusType" } } + ] + }, + "agent": { + "description": "The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.", + "anyOf": [{ "$ref": "schema:Organization" }, { "$ref": "schema:Person" }] + }, + "endTime": { + "description": "The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it's the time offset of the end of a clip within a larger file.\\n\\nNote that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.", + "anyOf": [ + { "type": "string", "format": "date-time" }, + { "type": "string", "format": "time" } + ] + }, + "error": { + "description": "For failed actions, more information on the cause of the failure.", + "oneOf": [ + { "$ref": "schema:Thing" }, + { "type": "array", "items": { "$ref": "schema:Thing" } } + ] + }, + "instrument": { + "description": "The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.", + "$ref": "schema:Thing" + }, + "location": { + "description": "The location of, for example, where an event is happening, where an organization is located, or where an action takes place.", + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:Place" }, + { "$ref": "schema:PostalAddress" }, + { "$ref": "schema:VirtualLocation" } + ] + }, + "object": { + "description": "The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn't). E.g. John read *a book*.", + "$ref": "schema:Thing" + }, + "participant": { + "description": "Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + } + } + ] + }, + "provider": { + "description": "The service provider, service operator, or service performer; the goods producer. Another party (a seller) may offer those services or goods on behalf of the provider. A provider may also serve as the seller.", + "anyOf": [{ "$ref": "schema:Organization" }, { "$ref": "schema:Person" }] + }, + "result": { + "description": "The result produced in the action. E.g. John wrote *a book*.", + "$ref": "schema:Thing" + }, + "startTime": { + "description": "The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it's the time offset of the start of a clip within a larger file.\\n\\nNote that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.", + "anyOf": [ + { "type": "string", "format": "date-time" }, + { "type": "string", "format": "time" } + ] + }, + "target": { + "description": "Indicates a target EntryPoint, or url, for an Action.", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:EntryPoint" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:EntryPoint" } + ] + } + } + ] + } + } +} diff --git a/registry/schema-org/ActionAccessSpecification.schema.json b/registry/schema-org/ActionAccessSpecification.schema.json new file mode 100644 index 0000000..a3b0d08 --- /dev/null +++ b/registry/schema-org/ActionAccessSpecification.schema.json @@ -0,0 +1,84 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:ActionAccessSpecification", + "title": "ActionAccessSpecification", + "description": "A set of requirements that must be fulfilled in order to perform an Action.", + "type": "object", + "allOf": [ + { + "description": "A utility class that serves as the umbrella for a number of 'intangible' things such as quantities, structured values, etc.", + "$ref": "schema:Intangible" + } + ], + "properties": { + "availabilityEnds": { + "description": "The end of the availability of the product or service included in the offer.", + "anyOf": [ + { "type": "string", "format": "date" }, + { "type": "string", "format": "date-time" }, + { "type": "string", "format": "time" } + ] + }, + "availabilityStarts": { + "description": "The beginning of the availability of the product or service included in the offer.", + "anyOf": [ + { "type": "string", "format": "date" }, + { "type": "string", "format": "date-time" }, + { "type": "string", "format": "time" } + ] + }, + "category": { + "description": "A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:CategoryCode" }, + { "$ref": "schema:PhysicalActivityCategory" }, + { "$ref": "schema:Thing" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:CategoryCode" }, + { "$ref": "schema:PhysicalActivityCategory" }, + { "$ref": "schema:Thing" } + ] + } + } + ] + }, + "eligibleRegion": { + "description": "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.\\n\\nSee also [[ineligibleRegion]].\n ", + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:GeoShape" }, + { "$ref": "schema:Place" } + ] + }, + "expectsAcceptanceOf": { + "description": "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.", + "oneOf": [ + { "$ref": "schema:Offer" }, + { "type": "array", "items": { "$ref": "schema:Offer" } } + ] + }, + "ineligibleRegion": { + "description": "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.\\n\\nSee also [[eligibleRegion]].\n ", + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:GeoShape" }, + { "$ref": "schema:Place" } + ] + }, + "requiresSubscription": { + "description": "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').", + "anyOf": [{ "type": "boolean" }, { "$ref": "schema:MediaSubscription" }] + } + } +} diff --git a/registry/schema-org/ActionStatusType.schema.json b/registry/schema-org/ActionStatusType.schema.json new file mode 100644 index 0000000..0460789 --- /dev/null +++ b/registry/schema-org/ActionStatusType.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:ActionStatusType", + "title": "ActionStatusType", + "description": "The status of an Action.", + "type": "object", + "allOf": [ + { + "description": "Lists or enumerations dealing with status types.", + "$ref": "schema:StatusEnumeration" + } + ] +} diff --git a/registry/schema-org/ActivateAction.schema.json b/registry/schema-org/ActivateAction.schema.json new file mode 100644 index 0000000..9de6379 --- /dev/null +++ b/registry/schema-org/ActivateAction.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:ActivateAction", + "title": "ActivateAction", + "description": "The act of starting or activating a device or application (e.g. starting a timer or turning on a flashlight).", + "type": "object", + "allOf": [ + { + "description": "An agent controls a device or application.", + "$ref": "schema:ControlAction" + } + ] +} diff --git a/registry/schema-org/AddAction.schema.json b/registry/schema-org/AddAction.schema.json new file mode 100644 index 0000000..7b257a3 --- /dev/null +++ b/registry/schema-org/AddAction.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:AddAction", + "title": "AddAction", + "description": "The act of editing by adding an object to a collection.", + "type": "object", + "allOf": [ + { + "description": "The act of managing by changing/editing the state of the object.", + "$ref": "schema:UpdateAction" + } + ] +} diff --git a/registry/schema-org/AdministrativeArea.schema.json b/registry/schema-org/AdministrativeArea.schema.json new file mode 100644 index 0000000..188a0e0 --- /dev/null +++ b/registry/schema-org/AdministrativeArea.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:AdministrativeArea", + "title": "AdministrativeArea", + "description": "A geographical region, typically under the jurisdiction of a particular government.", + "type": "object", + "allOf": [ + { + "description": "Entities that have a somewhat fixed, physical extension.", + "$ref": "schema:Place" + } + ] +} diff --git a/registry/schema-org/AdultEntertainment.schema.json b/registry/schema-org/AdultEntertainment.schema.json new file mode 100644 index 0000000..313a5f6 --- /dev/null +++ b/registry/schema-org/AdultEntertainment.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:AdultEntertainment", + "title": "AdultEntertainment", + "description": "An adult entertainment establishment.", + "type": "object", + "allOf": [ + { + "description": "A business providing entertainment.", + "$ref": "schema:EntertainmentBusiness" + } + ] +} diff --git a/registry/schema-org/AdultOrientedEnumeration.schema.json b/registry/schema-org/AdultOrientedEnumeration.schema.json new file mode 100644 index 0000000..41ff1f7 --- /dev/null +++ b/registry/schema-org/AdultOrientedEnumeration.schema.json @@ -0,0 +1,49 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:AdultOrientedEnumeration", + "title": "AdultOrientedEnumeration", + "description": "Enumeration of considerations that make a product relevant or potentially restricted for adults only.", + "type": "string", + "oneOf": [ + { + "description": "Item contains alcohol or promotes alcohol consumption.", + "const": "AlcoholConsideration" + }, + { + "description": "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.", + "const": "DangerousGoodConsideration" + }, + { + "description": "Item is a pharmaceutical (e.g., a prescription or OTC drug) or a restricted medical device.", + "const": "HealthcareConsideration" + }, + { + "description": "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.", + "const": "NarcoticConsideration" + }, + { + "description": "A general code for cases where relevance to children is reduced, e.g. adult education, mortgages, retirement-related products, etc.", + "const": "ReducedRelevanceForChildrenConsideration" + }, + { + "description": "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.", + "const": "SexualContentConsideration" + }, + { + "description": "Item contains tobacco and/or nicotine, for example cigars, cigarettes, chewing tobacco, e-cigarettes, or hookahs.", + "const": "TobaccoNicotineConsideration" + }, + { + "description": "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.", + "const": "UnclassifiedAdultConsideration" + }, + { + "description": "Item shows or promotes violence.", + "const": "ViolenceConsideration" + }, + { + "description": "The item is intended to induce bodily harm, for example guns, mace, combat knives, brass knuckles, nail or other bombs, and spears.", + "const": "WeaponConsideration" + } + ] +} diff --git a/registry/schema-org/AdvertiserContentArticle.schema.json b/registry/schema-org/AdvertiserContentArticle.schema.json new file mode 100644 index 0000000..03c57db --- /dev/null +++ b/registry/schema-org/AdvertiserContentArticle.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:AdvertiserContentArticle", + "title": "AdvertiserContentArticle", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "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).", + "$ref": "schema:Article" + } + ] +} diff --git a/registry/schema-org/AggregateOffer.schema.json b/registry/schema-org/AggregateOffer.schema.json new file mode 100644 index 0000000..8183448 --- /dev/null +++ b/registry/schema-org/AggregateOffer.schema.json @@ -0,0 +1,39 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:AggregateOffer", + "title": "AggregateOffer", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "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/).", + "$ref": "schema:Offer" + } + ], + "properties": { + "highPrice": { + "description": "The highest price of all offers available.\\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.", + "anyOf": [{ "type": "number" }, { "type": "string" }] + }, + "lowPrice": { + "description": "The lowest price of all offers available.\\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.", + "anyOf": [{ "type": "number" }, { "type": "string" }] + }, + "offerCount": { + "description": "The number of offers for the product.", + "type": "integer" + }, + "offers": { + "description": "An offer to provide this item—for example, an offer to sell a product, rent the DVD of a movie, perform a service, or give away tickets to an event. Use [[businessFunction]] to indicate the kind of transaction offered, i.e. sell, lease, etc. This property can also be used to describe a [[Demand]]. While this property is listed as expected on a number of common types, it can be used in others. In that case, using a second type, such as Product or a subtype of Product, can clarify the nature of the offer.\n ", + "oneOf": [ + { "anyOf": [{ "$ref": "schema:Demand" }, { "$ref": "schema:Offer" }] }, + { + "type": "array", + "items": { + "anyOf": [{ "$ref": "schema:Demand" }, { "$ref": "schema:Offer" }] + } + } + ] + } + } +} diff --git a/registry/schema-org/AggregateRating.schema.json b/registry/schema-org/AggregateRating.schema.json new file mode 100644 index 0000000..9395d50 --- /dev/null +++ b/registry/schema-org/AggregateRating.schema.json @@ -0,0 +1,27 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:AggregateRating", + "title": "AggregateRating", + "description": "The average rating based on multiple ratings or reviews.", + "type": "object", + "allOf": [ + { + "description": "A rating is an evaluation on a numeric scale, such as 1 to 5 stars.", + "$ref": "schema:Rating" + } + ], + "properties": { + "itemReviewed": { + "description": "The item that is being reviewed/rated.", + "$ref": "schema:Thing" + }, + "ratingCount": { + "description": "The count of total number of ratings.", + "type": "integer" + }, + "reviewCount": { + "description": "The count of total number of reviews.", + "type": "integer" + } + } +} diff --git a/registry/schema-org/AgreeAction.schema.json b/registry/schema-org/AgreeAction.schema.json new file mode 100644 index 0000000..3e336fb --- /dev/null +++ b/registry/schema-org/AgreeAction.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:AgreeAction", + "title": "AgreeAction", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "The act of responding instinctively and emotionally to an object, expressing a sentiment.", + "$ref": "schema:ReactAction" + } + ] +} diff --git a/registry/schema-org/Airline.schema.json b/registry/schema-org/Airline.schema.json new file mode 100644 index 0000000..bfebc5e --- /dev/null +++ b/registry/schema-org/Airline.schema.json @@ -0,0 +1,26 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Airline", + "title": "Airline", + "description": "An organization that provides flights for passengers.", + "type": "object", + "allOf": [ + { + "description": "An organization such as a school, NGO, corporation, club, etc.", + "$ref": "schema:Organization" + } + ], + "properties": { + "boardingPolicy": { + "description": "The type of boarding policy used by the airline (e.g. zone-based or group-based).", + "$ref": "schema:BoardingPolicyType" + }, + "iataCode": { + "description": "IATA identifier for an airline or airport.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + } + } +} diff --git a/registry/schema-org/Airport.schema.json b/registry/schema-org/Airport.schema.json new file mode 100644 index 0000000..53dce78 --- /dev/null +++ b/registry/schema-org/Airport.schema.json @@ -0,0 +1,29 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Airport", + "title": "Airport", + "description": "An airport.", + "type": "object", + "allOf": [ + { + "description": "A public structure, such as a town hall or concert hall.", + "$ref": "schema:CivicStructure" + } + ], + "properties": { + "iataCode": { + "description": "IATA identifier for an airline or airport.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "icaoCode": { + "description": "ICAO identifier for an airport.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + } + } +} diff --git a/registry/schema-org/AlignmentObject.schema.json b/registry/schema-org/AlignmentObject.schema.json new file mode 100644 index 0000000..22c9999 --- /dev/null +++ b/registry/schema-org/AlignmentObject.schema.json @@ -0,0 +1,39 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:AlignmentObject", + "title": "AlignmentObject", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "A utility class that serves as the umbrella for a number of 'intangible' things such as quantities, structured values, etc.", + "$ref": "schema:Intangible" + } + ], + "properties": { + "alignmentType": { + "description": "A category of alignment between the learning resource and the framework node. Recommended values include: 'requires', 'textComplexity', 'readingLevel', and 'educationalSubject'.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "educationalFramework": { + "description": "The framework to which the resource being described is aligned.", + "type": "string" + }, + "targetDescription": { + "description": "The description of a node in an established educational framework.", + "type": "string" + }, + "targetName": { + "description": "The name of a node in an established educational framework.", + "type": "string" + }, + "targetUrl": { + "description": "The URL of a node in an established educational framework.", + "type": "string", + "format": "uri" + } + } +} diff --git a/registry/schema-org/AllocateAction.schema.json b/registry/schema-org/AllocateAction.schema.json new file mode 100644 index 0000000..b030861 --- /dev/null +++ b/registry/schema-org/AllocateAction.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:AllocateAction", + "title": "AllocateAction", + "description": "The act of organizing tasks/objects/events by associating resources to it.", + "type": "object", + "allOf": [ + { + "description": "The act of manipulating/administering/supervising/controlling one or more objects.", + "$ref": "schema:OrganizeAction" + } + ] +} diff --git a/registry/schema-org/AmpStory.schema.json b/registry/schema-org/AmpStory.schema.json new file mode 100644 index 0000000..fdd1cd5 --- /dev/null +++ b/registry/schema-org/AmpStory.schema.json @@ -0,0 +1,17 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:AmpStory", + "title": "AmpStory", + "description": "A creative work with a visual storytelling format intended to be viewed online, particularly on mobile devices.", + "type": "object", + "allOf": [ + { + "description": "The most generic kind of creative work, including books, movies, photographs, software programs, etc.", + "$ref": "schema:CreativeWork" + }, + { + "description": "A media object, such as an image, video, audio, or text 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).", + "$ref": "schema:MediaObject" + } + ] +} diff --git a/registry/schema-org/AmusementPark.schema.json b/registry/schema-org/AmusementPark.schema.json new file mode 100644 index 0000000..bdf617f --- /dev/null +++ b/registry/schema-org/AmusementPark.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:AmusementPark", + "title": "AmusementPark", + "description": "An amusement park.", + "type": "object", + "allOf": [ + { + "description": "A business providing entertainment.", + "$ref": "schema:EntertainmentBusiness" + } + ] +} diff --git a/registry/schema-org/AnalysisNewsArticle.schema.json b/registry/schema-org/AnalysisNewsArticle.schema.json new file mode 100644 index 0000000..ef34cf4 --- /dev/null +++ b/registry/schema-org/AnalysisNewsArticle.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:AnalysisNewsArticle", + "title": "AnalysisNewsArticle", + "description": "An AnalysisNewsArticle is a [[NewsArticle]] that, while based on factual reporting, incorporates the expertise of the author/producer, offering interpretations and conclusions.", + "type": "object", + "allOf": [ + { + "description": "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.\n", + "$ref": "schema:NewsArticle" + } + ] +} diff --git a/registry/schema-org/AnatomicalStructure.schema.json b/registry/schema-org/AnatomicalStructure.schema.json new file mode 100644 index 0000000..3fd2d21 --- /dev/null +++ b/registry/schema-org/AnatomicalStructure.schema.json @@ -0,0 +1,62 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:AnatomicalStructure", + "title": "AnatomicalStructure", + "description": "Any part of the human body, typically a component of an anatomical system. Organs, tissues, and cells are all anatomical structures.", + "type": "object", + "allOf": [ + { + "description": "The most generic type of entity related to health and the practice of medicine.", + "$ref": "schema:MedicalEntity" + } + ], + "properties": { + "associatedPathophysiology": { + "description": "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.", + "type": "string" + }, + "bodyLocation": { + "description": "Location in the body of the anatomical structure.", + "type": "string" + }, + "connectedTo": { + "description": "Other anatomical structures to which this structure is connected.", + "oneOf": [ + { "$ref": "schema:AnatomicalStructure" }, + { "type": "array", "items": { "$ref": "schema:AnatomicalStructure" } } + ] + }, + "diagram": { + "description": "An image containing a diagram that illustrates the structure and/or its component substructures and/or connections with other structures.", + "oneOf": [ + { "$ref": "schema:ImageObject" }, + { "type": "array", "items": { "$ref": "schema:ImageObject" } } + ] + }, + "partOfSystem": { + "description": "The anatomical or organ system that this structure is part of.", + "$ref": "schema:AnatomicalSystem" + }, + "relatedCondition": { + "description": "A medical condition associated with this anatomy.", + "oneOf": [ + { "$ref": "schema:MedicalCondition" }, + { "type": "array", "items": { "$ref": "schema:MedicalCondition" } } + ] + }, + "relatedTherapy": { + "description": "A medical therapy related to this anatomy.", + "oneOf": [ + { "$ref": "schema:MedicalTherapy" }, + { "type": "array", "items": { "$ref": "schema:MedicalTherapy" } } + ] + }, + "subStructure": { + "description": "Component (sub-)structure(s) that comprise this anatomical structure.", + "oneOf": [ + { "$ref": "schema:AnatomicalStructure" }, + { "type": "array", "items": { "$ref": "schema:AnatomicalStructure" } } + ] + } + } +} diff --git a/registry/schema-org/AnatomicalSystem.schema.json b/registry/schema-org/AnatomicalSystem.schema.json new file mode 100644 index 0000000..0a84f4a --- /dev/null +++ b/registry/schema-org/AnatomicalSystem.schema.json @@ -0,0 +1,47 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:AnatomicalSystem", + "title": "AnatomicalSystem", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "The most generic type of entity related to health and the practice of medicine.", + "$ref": "schema:MedicalEntity" + } + ], + "properties": { + "associatedPathophysiology": { + "description": "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.", + "type": "string" + }, + "comprisedOf": { + "description": "Specifying something physically contained by something else. Typically used here for the underlying anatomical structures, such as organs, that comprise the anatomical system.", + "anyOf": [ + { "$ref": "schema:AnatomicalStructure" }, + { "$ref": "schema:AnatomicalSystem" } + ] + }, + "relatedCondition": { + "description": "A medical condition associated with this anatomy.", + "oneOf": [ + { "$ref": "schema:MedicalCondition" }, + { "type": "array", "items": { "$ref": "schema:MedicalCondition" } } + ] + }, + "relatedStructure": { + "description": "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.", + "oneOf": [ + { "$ref": "schema:AnatomicalStructure" }, + { "type": "array", "items": { "$ref": "schema:AnatomicalStructure" } } + ] + }, + "relatedTherapy": { + "description": "A medical therapy related to this anatomy.", + "oneOf": [ + { "$ref": "schema:MedicalTherapy" }, + { "type": "array", "items": { "$ref": "schema:MedicalTherapy" } } + ] + } + } +} diff --git a/registry/schema-org/AnimalShelter.schema.json b/registry/schema-org/AnimalShelter.schema.json new file mode 100644 index 0000000..90b0c2b --- /dev/null +++ b/registry/schema-org/AnimalShelter.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:AnimalShelter", + "title": "AnimalShelter", + "description": "Animal shelter.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:LocalBusiness" + } + ] +} diff --git a/registry/schema-org/Answer.schema.json b/registry/schema-org/Answer.schema.json new file mode 100644 index 0000000..100c668 --- /dev/null +++ b/registry/schema-org/Answer.schema.json @@ -0,0 +1,39 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Answer", + "title": "Answer", + "description": "An answer offered to a question; perhaps correct, perhaps opinionated or wrong.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:Comment" + } + ], + "properties": { + "answerExplanation": { + "description": "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. ", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:Comment" }, + { "$ref": "schema:WebContent" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:Comment" }, + { "$ref": "schema:WebContent" } + ] + } + } + ] + }, + "parentItem": { + "description": "The parent of a question, answer or item in general. Typically used for Q/A discussion threads e.g. a chain of comments with the first comment being an [[Article]] or other [[CreativeWork]]. See also [[comment]] which points from something to a comment about it.", + "anyOf": [{ "$ref": "schema:Comment" }, { "$ref": "schema:CreativeWork" }] + } + } +} diff --git a/registry/schema-org/Apartment.schema.json b/registry/schema-org/Apartment.schema.json new file mode 100644 index 0000000..adeb9cf --- /dev/null +++ b/registry/schema-org/Apartment.schema.json @@ -0,0 +1,23 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Apartment", + "title": "Apartment", + "description": "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).", + "type": "object", + "allOf": [ + { + "description": "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.\n", + "$ref": "schema:Accommodation" + } + ], + "properties": { + "numberOfRooms": { + "description": "The number of rooms (excluding bathrooms and closets) of the accommodation or lodging business.\nTypical 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.", + "anyOf": [{ "type": "number" }, { "$ref": "schema:QuantitativeValue" }] + }, + "occupancy": { + "description": "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).\nTypical unit code(s): C62 for person.", + "$ref": "schema:QuantitativeValue" + } + } +} diff --git a/registry/schema-org/ApartmentComplex.schema.json b/registry/schema-org/ApartmentComplex.schema.json new file mode 100644 index 0000000..4581c0e --- /dev/null +++ b/registry/schema-org/ApartmentComplex.schema.json @@ -0,0 +1,44 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:ApartmentComplex", + "title": "ApartmentComplex", + "description": "Residence type: Apartment complex.", + "type": "object", + "allOf": [ + { + "description": "The place where a person lives.", + "$ref": "schema:Residence" + } + ], + "properties": { + "numberOfAccommodationUnits": { + "description": "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]].", + "oneOf": [ + { "$ref": "schema:QuantitativeValue" }, + { "type": "array", "items": { "$ref": "schema:QuantitativeValue" } } + ] + }, + "numberOfAvailableAccommodationUnits": { + "description": "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]].", + "oneOf": [ + { "$ref": "schema:QuantitativeValue" }, + { "type": "array", "items": { "$ref": "schema:QuantitativeValue" } } + ] + }, + "numberOfBedrooms": { + "description": "The total integer number of bedrooms in a some [[Accommodation]], [[ApartmentComplex]] or [[FloorPlan]].", + "anyOf": [{ "type": "number" }, { "$ref": "schema:QuantitativeValue" }] + }, + "petsAllowed": { + "description": "Indicates whether pets are allowed to enter the accommodation or lodging business. More detailed information can be put in a text value.", + "anyOf": [{ "type": "boolean" }, { "type": "string" }] + }, + "tourBookingPage": { + "description": "A page providing information on how to book a tour of some [[Place]], such as an [[Accommodation]] or [[ApartmentComplex]] in a real estate setting, as well as other kinds of tours as appropriate.", + "oneOf": [ + { "type": "string", "format": "uri" }, + { "type": "array", "items": { "type": "string", "format": "uri" } } + ] + } + } +} diff --git a/registry/schema-org/AppendAction.schema.json b/registry/schema-org/AppendAction.schema.json new file mode 100644 index 0000000..aef3bd2 --- /dev/null +++ b/registry/schema-org/AppendAction.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:AppendAction", + "title": "AppendAction", + "description": "The act of inserting at the end if an ordered collection.", + "type": "object", + "allOf": [ + { + "description": "The act of adding at a specific location in an ordered collection.", + "$ref": "schema:InsertAction" + } + ] +} diff --git a/registry/schema-org/ApplyAction.schema.json b/registry/schema-org/ApplyAction.schema.json new file mode 100644 index 0000000..f68f826 --- /dev/null +++ b/registry/schema-org/ApplyAction.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:ApplyAction", + "title": "ApplyAction", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "The act of manipulating/administering/supervising/controlling one or more objects.", + "$ref": "schema:OrganizeAction" + } + ] +} diff --git a/registry/schema-org/ApprovedIndication.schema.json b/registry/schema-org/ApprovedIndication.schema.json new file mode 100644 index 0000000..2624a84 --- /dev/null +++ b/registry/schema-org/ApprovedIndication.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:ApprovedIndication", + "title": "ApprovedIndication", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "A condition or factor that indicates use of a medical therapy, including signs, symptoms, risk factors, anatomical states, etc.", + "$ref": "schema:MedicalIndication" + } + ] +} diff --git a/registry/schema-org/Aquarium.schema.json b/registry/schema-org/Aquarium.schema.json new file mode 100644 index 0000000..072a71c --- /dev/null +++ b/registry/schema-org/Aquarium.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Aquarium", + "title": "Aquarium", + "description": "Aquarium.", + "type": "object", + "allOf": [ + { + "description": "A public structure, such as a town hall or concert hall.", + "$ref": "schema:CivicStructure" + } + ] +} diff --git a/registry/schema-org/ArchiveComponent.schema.json b/registry/schema-org/ArchiveComponent.schema.json new file mode 100644 index 0000000..2275cf6 --- /dev/null +++ b/registry/schema-org/ArchiveComponent.schema.json @@ -0,0 +1,22 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:ArchiveComponent", + "title": "ArchiveComponent", + "description": "", + "type": "object", + "allOf": [ + { + "description": "The most generic kind of creative work, including books, movies, photographs, software programs, etc.", + "$ref": "schema:CreativeWork" + } + ], + "properties": { + "[object Object]": { + "description": "", + "oneOf": [ + { "$ref": "schema:ArchiveOrganization" }, + { "type": "array", "items": { "$ref": "schema:ArchiveOrganization" } } + ] + } + } +} diff --git a/registry/schema-org/ArchiveOrganization.schema.json b/registry/schema-org/ArchiveOrganization.schema.json new file mode 100644 index 0000000..ba9c7a5 --- /dev/null +++ b/registry/schema-org/ArchiveOrganization.schema.json @@ -0,0 +1,22 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:ArchiveOrganization", + "title": "ArchiveOrganization", + "description": "", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:LocalBusiness" + } + ], + "properties": { + "[object Object]": { + "description": "", + "oneOf": [ + { "$ref": "schema:ArchiveComponent" }, + { "type": "array", "items": { "$ref": "schema:ArchiveComponent" } } + ] + } + } +} diff --git a/registry/schema-org/ArriveAction.schema.json b/registry/schema-org/ArriveAction.schema.json new file mode 100644 index 0000000..68c3ea2 --- /dev/null +++ b/registry/schema-org/ArriveAction.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:ArriveAction", + "title": "ArriveAction", + "description": "The act of arriving at a place. An agent arrives at a destination from a fromLocation, optionally with participants.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:MoveAction" + } + ] +} diff --git a/registry/schema-org/ArtGallery.schema.json b/registry/schema-org/ArtGallery.schema.json new file mode 100644 index 0000000..318d46a --- /dev/null +++ b/registry/schema-org/ArtGallery.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:ArtGallery", + "title": "ArtGallery", + "description": "An art gallery.", + "type": "object", + "allOf": [ + { + "description": "A business providing entertainment.", + "$ref": "schema:EntertainmentBusiness" + } + ] +} diff --git a/registry/schema-org/Artery.schema.json b/registry/schema-org/Artery.schema.json new file mode 100644 index 0000000..31a4e1c --- /dev/null +++ b/registry/schema-org/Artery.schema.json @@ -0,0 +1,23 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Artery", + "title": "Artery", + "description": "A type of blood vessel that specifically carries blood away from the heart.", + "type": "object", + "allOf": [ + { + "description": "A component of the human body circulatory system comprised of an intricate network of hollow tubes that transport blood throughout the entire body.", + "$ref": "schema:Vessel" + } + ], + "properties": { + "arterialBranch": { + "description": "The branches that comprise the arterial structure.", + "$ref": "schema:AnatomicalStructure" + }, + "supplyTo": { + "description": "The area to which the artery supplies blood.", + "$ref": "schema:AnatomicalStructure" + } + } +} diff --git a/registry/schema-org/Article.schema.json b/registry/schema-org/Article.schema.json new file mode 100644 index 0000000..2fa21a5 --- /dev/null +++ b/registry/schema-org/Article.schema.json @@ -0,0 +1,77 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Article", + "title": "Article", + "description": "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).", + "type": "object", + "allOf": [ + { + "description": "The most generic kind of creative work, including books, movies, photographs, software programs, etc.", + "$ref": "schema:CreativeWork" + } + ], + "properties": { + "articleBody": { + "description": "The actual body of the article.", + "type": "string" + }, + "articleSection": { + "description": "Articles may belong to one or more 'sections' in a magazine or newspaper, such as Sports, Lifestyle, etc.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "backstory": { + "description": "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.", + "oneOf": [ + { "anyOf": [{ "type": "string" }, { "$ref": "schema:CreativeWork" }] }, + { + "type": "array", + "items": { + "anyOf": [{ "type": "string" }, { "$ref": "schema:CreativeWork" }] + } + } + ] + }, + "pageEnd": { + "description": "The page on which the work ends; for example \"138\" or \"xvi\".", + "anyOf": [{ "type": "integer" }, { "type": "string" }] + }, + "pageStart": { + "description": "The page on which the work starts; for example \"135\" or \"xiii\".", + "anyOf": [{ "type": "integer" }, { "type": "string" }] + }, + "pagination": { + "description": "Any description of pages that is not separated into pageStart and pageEnd; for example, \"1-6, 9, 55\" or \"10-12, 46-49\".", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "speakable": { + "description": "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.\n\nThe *speakable* property can be repeated an arbitrary number of times, with three kinds of possible 'content-locator' values:\n\n1.) *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.\n\n2.) CSS Selectors - addresses content in the annotated page, e.g. via class attribute. Use the [[cssSelector]] property.\n\n3.) XPaths - addresses content via XPaths (assuming an XML view of the content). Use the [[xpath]] property.\n\n\nFor 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\nwe define a supporting type, [[SpeakableSpecification]] which is defined to be a possible value of the *speakable* property.\n ", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:SpeakableSpecification" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:SpeakableSpecification" } + ] + } + } + ] + }, + "wordCount": { + "description": "The number of words in the text of the CreativeWork such as an Article, Book, etc.", + "type": "integer" + } + } +} diff --git a/registry/schema-org/AskAction.schema.json b/registry/schema-org/AskAction.schema.json new file mode 100644 index 0000000..1bf2430 --- /dev/null +++ b/registry/schema-org/AskAction.schema.json @@ -0,0 +1,22 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:AskAction", + "title": "AskAction", + "description": "The act of posing a question / favor to someone.\\n\\nRelated actions:\\n\\n* [[ReplyAction]]: Appears generally as a response to AskAction.", + "type": "object", + "allOf": [ + { + "description": "The act of conveying information to another person via a communication medium (instrument) such as speech, email, or telephone conversation.", + "$ref": "schema:CommunicateAction" + } + ], + "properties": { + "question": { + "description": "A sub property of object. A question.", + "oneOf": [ + { "$ref": "schema:Question" }, + { "type": "array", "items": { "$ref": "schema:Question" } } + ] + } + } +} diff --git a/registry/schema-org/AskPublicNewsArticle.schema.json b/registry/schema-org/AskPublicNewsArticle.schema.json new file mode 100644 index 0000000..16a019b --- /dev/null +++ b/registry/schema-org/AskPublicNewsArticle.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:AskPublicNewsArticle", + "title": "AskPublicNewsArticle", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "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.\n", + "$ref": "schema:NewsArticle" + } + ] +} diff --git a/registry/schema-org/AssessAction.schema.json b/registry/schema-org/AssessAction.schema.json new file mode 100644 index 0000000..af20a28 --- /dev/null +++ b/registry/schema-org/AssessAction.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:AssessAction", + "title": "AssessAction", + "description": "The act of forming one's opinion, reaction or sentiment.", + "type": "object", + "allOf": [ + { + "description": "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).", + "$ref": "schema:Action" + } + ] +} diff --git a/registry/schema-org/AssignAction.schema.json b/registry/schema-org/AssignAction.schema.json new file mode 100644 index 0000000..f1dbf3f --- /dev/null +++ b/registry/schema-org/AssignAction.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:AssignAction", + "title": "AssignAction", + "description": "The act of allocating an action/event/task to some destination (someone or something).", + "type": "object", + "allOf": [ + { + "description": "The act of organizing tasks/objects/events by associating resources to it.", + "$ref": "schema:AllocateAction" + } + ] +} diff --git a/registry/schema-org/Atlas.schema.json b/registry/schema-org/Atlas.schema.json new file mode 100644 index 0000000..2e8156e --- /dev/null +++ b/registry/schema-org/Atlas.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Atlas", + "title": "Atlas", + "description": "A collection or bound volume of maps, charts, plates or tables, physical or in media form illustrating any subject.", + "type": "object", + "allOf": [ + { + "description": "The most generic kind of creative work, including books, movies, photographs, software programs, etc.", + "$ref": "schema:CreativeWork" + } + ] +} diff --git a/registry/schema-org/Attorney.schema.json b/registry/schema-org/Attorney.schema.json new file mode 100644 index 0000000..21268d0 --- /dev/null +++ b/registry/schema-org/Attorney.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Attorney", + "title": "Attorney", + "description": "Professional service: Attorney. \\n\\nThis type is deprecated - [[LegalService]] is more inclusive and less ambiguous.", + "type": "object", + "allOf": [ + { + "description": "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).", + "$ref": "schema:LegalService" + } + ] +} diff --git a/registry/schema-org/Audience.schema.json b/registry/schema-org/Audience.schema.json new file mode 100644 index 0000000..fe18f38 --- /dev/null +++ b/registry/schema-org/Audience.schema.json @@ -0,0 +1,23 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Audience", + "title": "Audience", + "description": "Intended audience for an item, i.e. the group for whom the item was created.", + "type": "object", + "allOf": [ + { + "description": "A utility class that serves as the umbrella for a number of 'intangible' things such as quantities, structured values, etc.", + "$ref": "schema:Intangible" + } + ], + "properties": { + "audienceType": { + "description": "The target group associated with a given audience (e.g. veterans, car owners, musicians, etc.).", + "type": "string" + }, + "geographicArea": { + "description": "The geographic area associated with the audience.", + "$ref": "schema:AdministrativeArea" + } + } +} diff --git a/registry/schema-org/AudioObject.schema.json b/registry/schema-org/AudioObject.schema.json new file mode 100644 index 0000000..4b4e4bb --- /dev/null +++ b/registry/schema-org/AudioObject.schema.json @@ -0,0 +1,30 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:AudioObject", + "title": "AudioObject", + "description": "An audio file.", + "type": "object", + "allOf": [ + { + "description": "A media object, such as an image, video, audio, or text 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).", + "$ref": "schema:MediaObject" + } + ], + "properties": { + "caption": { + "description": "The caption for this object. For downloadable machine formats (closed caption, subtitles etc.) use MediaObject and indicate the [[encodingFormat]].", + "anyOf": [{ "type": "string" }, { "$ref": "schema:MediaObject" }] + }, + "embeddedTextCaption": { + "description": "Represents textual captioning from a [[MediaObject]], e.g. text of a 'meme'.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "transcript": { + "description": "If this MediaObject is an AudioObject or VideoObject, the transcript of that object.", + "type": "string" + } + } +} diff --git a/registry/schema-org/AudioObjectSnapshot.schema.json b/registry/schema-org/AudioObjectSnapshot.schema.json new file mode 100644 index 0000000..9f748fe --- /dev/null +++ b/registry/schema-org/AudioObjectSnapshot.schema.json @@ -0,0 +1,8 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:AudioObjectSnapshot", + "title": "AudioObjectSnapshot", + "description": "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.", + "type": "object", + "allOf": [{ "description": "An audio file.", "$ref": "schema:AudioObject" }] +} diff --git a/registry/schema-org/Audiobook.schema.json b/registry/schema-org/Audiobook.schema.json new file mode 100644 index 0000000..6f053b1 --- /dev/null +++ b/registry/schema-org/Audiobook.schema.json @@ -0,0 +1,27 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Audiobook", + "title": "Audiobook", + "description": "An audiobook.", + "type": "object", + "allOf": [ + { "description": "An audio file.", "$ref": "schema:AudioObject" }, + { "description": "A book.", "$ref": "schema:Book" } + ], + "properties": { + "duration": { + "description": "The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 duration format](http://en.wikipedia.org/wiki/ISO_8601).", + "anyOf": [ + { "type": "string", "$comment": "https://schema.org/Duration" }, + { "$ref": "schema:QuantitativeValue" } + ] + }, + "readBy": { + "description": "A person who reads (performs) the audiobook.", + "oneOf": [ + { "$ref": "schema:Person" }, + { "type": "array", "items": { "$ref": "schema:Person" } } + ] + } + } +} diff --git a/registry/schema-org/AuthorizeAction.schema.json b/registry/schema-org/AuthorizeAction.schema.json new file mode 100644 index 0000000..a53e938 --- /dev/null +++ b/registry/schema-org/AuthorizeAction.schema.json @@ -0,0 +1,39 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:AuthorizeAction", + "title": "AuthorizeAction", + "description": "The act of granting permission to an object.", + "type": "object", + "allOf": [ + { + "description": "The act of organizing tasks/objects/events by associating resources to it.", + "$ref": "schema:AllocateAction" + } + ], + "properties": { + "recipient": { + "description": "A sub property of participant. The participant who is at the receiving end of the action.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:Audience" }, + { "$ref": "schema:ContactPoint" }, + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:Audience" }, + { "$ref": "schema:ContactPoint" }, + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + } + } + ] + } + } +} diff --git a/registry/schema-org/AutoBodyShop.schema.json b/registry/schema-org/AutoBodyShop.schema.json new file mode 100644 index 0000000..860b449 --- /dev/null +++ b/registry/schema-org/AutoBodyShop.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:AutoBodyShop", + "title": "AutoBodyShop", + "description": "Auto body shop.", + "type": "object", + "allOf": [ + { + "description": "Car repair, sales, or parts.", + "$ref": "schema:AutomotiveBusiness" + } + ] +} diff --git a/registry/schema-org/AutoDealer.schema.json b/registry/schema-org/AutoDealer.schema.json new file mode 100644 index 0000000..2b6b18c --- /dev/null +++ b/registry/schema-org/AutoDealer.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:AutoDealer", + "title": "AutoDealer", + "description": "An car dealership.", + "type": "object", + "allOf": [ + { + "description": "Car repair, sales, or parts.", + "$ref": "schema:AutomotiveBusiness" + } + ] +} diff --git a/registry/schema-org/AutoPartsStore.schema.json b/registry/schema-org/AutoPartsStore.schema.json new file mode 100644 index 0000000..3e4f0dc --- /dev/null +++ b/registry/schema-org/AutoPartsStore.schema.json @@ -0,0 +1,14 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:AutoPartsStore", + "title": "AutoPartsStore", + "description": "An auto parts store.", + "type": "object", + "allOf": [ + { + "description": "Car repair, sales, or parts.", + "$ref": "schema:AutomotiveBusiness" + }, + { "description": "A retail good store.", "$ref": "schema:Store" } + ] +} diff --git a/registry/schema-org/AutoRental.schema.json b/registry/schema-org/AutoRental.schema.json new file mode 100644 index 0000000..a1b3509 --- /dev/null +++ b/registry/schema-org/AutoRental.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:AutoRental", + "title": "AutoRental", + "description": "A car rental business.", + "type": "object", + "allOf": [ + { + "description": "Car repair, sales, or parts.", + "$ref": "schema:AutomotiveBusiness" + } + ] +} diff --git a/registry/schema-org/AutoRepair.schema.json b/registry/schema-org/AutoRepair.schema.json new file mode 100644 index 0000000..8d34f77 --- /dev/null +++ b/registry/schema-org/AutoRepair.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:AutoRepair", + "title": "AutoRepair", + "description": "Car repair business.", + "type": "object", + "allOf": [ + { + "description": "Car repair, sales, or parts.", + "$ref": "schema:AutomotiveBusiness" + } + ] +} diff --git a/registry/schema-org/AutoWash.schema.json b/registry/schema-org/AutoWash.schema.json new file mode 100644 index 0000000..e0a78d3 --- /dev/null +++ b/registry/schema-org/AutoWash.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:AutoWash", + "title": "AutoWash", + "description": "A car wash business.", + "type": "object", + "allOf": [ + { + "description": "Car repair, sales, or parts.", + "$ref": "schema:AutomotiveBusiness" + } + ] +} diff --git a/registry/schema-org/AutomatedTeller.schema.json b/registry/schema-org/AutomatedTeller.schema.json new file mode 100644 index 0000000..4ccf2cc --- /dev/null +++ b/registry/schema-org/AutomatedTeller.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:AutomatedTeller", + "title": "AutomatedTeller", + "description": "ATM/cash machine.", + "type": "object", + "allOf": [ + { + "description": "Financial services business.", + "$ref": "schema:FinancialService" + } + ] +} diff --git a/registry/schema-org/AutomotiveBusiness.schema.json b/registry/schema-org/AutomotiveBusiness.schema.json new file mode 100644 index 0000000..88135df --- /dev/null +++ b/registry/schema-org/AutomotiveBusiness.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:AutomotiveBusiness", + "title": "AutomotiveBusiness", + "description": "Car repair, sales, or parts.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:LocalBusiness" + } + ] +} diff --git a/registry/schema-org/BackgroundNewsArticle.schema.json b/registry/schema-org/BackgroundNewsArticle.schema.json new file mode 100644 index 0000000..8c64cea --- /dev/null +++ b/registry/schema-org/BackgroundNewsArticle.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:BackgroundNewsArticle", + "title": "BackgroundNewsArticle", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "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.\n", + "$ref": "schema:NewsArticle" + } + ] +} diff --git a/registry/schema-org/Bakery.schema.json b/registry/schema-org/Bakery.schema.json new file mode 100644 index 0000000..6149b80 --- /dev/null +++ b/registry/schema-org/Bakery.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Bakery", + "title": "Bakery", + "description": "A bakery.", + "type": "object", + "allOf": [ + { + "description": "A food-related business.", + "$ref": "schema:FoodEstablishment" + } + ] +} diff --git a/registry/schema-org/BankAccount.schema.json b/registry/schema-org/BankAccount.schema.json new file mode 100644 index 0000000..d8fb734 --- /dev/null +++ b/registry/schema-org/BankAccount.schema.json @@ -0,0 +1,33 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:BankAccount", + "title": "BankAccount", + "description": "A product or service offered by a bank whereby one may deposit, withdraw or transfer money and in some cases be paid interest.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:FinancialProduct" + } + ], + "properties": { + "accountMinimumInflow": { + "description": "A minimum amount that has to be paid in every month.", + "oneOf": [ + { "$ref": "schema:MonetaryAmount" }, + { "type": "array", "items": { "$ref": "schema:MonetaryAmount" } } + ] + }, + "accountOverdraftLimit": { + "description": "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.", + "oneOf": [ + { "$ref": "schema:MonetaryAmount" }, + { "type": "array", "items": { "$ref": "schema:MonetaryAmount" } } + ] + }, + "bankAccountType": { + "description": "The type of a bank account.", + "anyOf": [{ "type": "string", "format": "uri" }, { "type": "string" }] + } + } +} diff --git a/registry/schema-org/BankOrCreditUnion.schema.json b/registry/schema-org/BankOrCreditUnion.schema.json new file mode 100644 index 0000000..221e82d --- /dev/null +++ b/registry/schema-org/BankOrCreditUnion.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:BankOrCreditUnion", + "title": "BankOrCreditUnion", + "description": "Bank or credit union.", + "type": "object", + "allOf": [ + { + "description": "Financial services business.", + "$ref": "schema:FinancialService" + } + ] +} diff --git a/registry/schema-org/BarOrPub.schema.json b/registry/schema-org/BarOrPub.schema.json new file mode 100644 index 0000000..b7b0471 --- /dev/null +++ b/registry/schema-org/BarOrPub.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:BarOrPub", + "title": "BarOrPub", + "description": "A bar or pub.", + "type": "object", + "allOf": [ + { + "description": "A food-related business.", + "$ref": "schema:FoodEstablishment" + } + ] +} diff --git a/registry/schema-org/Barcode.schema.json b/registry/schema-org/Barcode.schema.json new file mode 100644 index 0000000..5735298 --- /dev/null +++ b/registry/schema-org/Barcode.schema.json @@ -0,0 +1,8 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Barcode", + "title": "Barcode", + "description": "An image of a visual machine-readable code such as a barcode or QR code.", + "type": "object", + "allOf": [{ "description": "An image file.", "$ref": "schema:ImageObject" }] +} diff --git a/registry/schema-org/Beach.schema.json b/registry/schema-org/Beach.schema.json new file mode 100644 index 0000000..41fe752 --- /dev/null +++ b/registry/schema-org/Beach.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Beach", + "title": "Beach", + "description": "Beach.", + "type": "object", + "allOf": [ + { + "description": "A public structure, such as a town hall or concert hall.", + "$ref": "schema:CivicStructure" + } + ] +} diff --git a/registry/schema-org/BeautySalon.schema.json b/registry/schema-org/BeautySalon.schema.json new file mode 100644 index 0000000..6dd43c6 --- /dev/null +++ b/registry/schema-org/BeautySalon.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:BeautySalon", + "title": "BeautySalon", + "description": "Beauty salon.", + "type": "object", + "allOf": [ + { + "description": "Health and beauty.", + "$ref": "schema:HealthAndBeautyBusiness" + } + ] +} diff --git a/registry/schema-org/BedAndBreakfast.schema.json b/registry/schema-org/BedAndBreakfast.schema.json new file mode 100644 index 0000000..c846d5d --- /dev/null +++ b/registry/schema-org/BedAndBreakfast.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:BedAndBreakfast", + "title": "BedAndBreakfast", + "description": "Bed and breakfast.\n\nSee also the dedicated document on the use of schema.org for marking up hotels and other forms of accommodations.\n", + "type": "object", + "allOf": [ + { + "description": "A lodging business, such as a motel, hotel, or inn.", + "$ref": "schema:LodgingBusiness" + } + ] +} diff --git a/registry/schema-org/BedDetails.schema.json b/registry/schema-org/BedDetails.schema.json new file mode 100644 index 0000000..f8b3c6e --- /dev/null +++ b/registry/schema-org/BedDetails.schema.json @@ -0,0 +1,23 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:BedDetails", + "title": "BedDetails", + "description": "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).", + "type": "object", + "allOf": [ + { + "description": "A utility class that serves as the umbrella for a number of 'intangible' things such as quantities, structured values, etc.", + "$ref": "schema:Intangible" + } + ], + "properties": { + "numberOfBeds": { + "description": "The quantity of the given bed type available in the HotelRoom, Suite, House, or Apartment.", + "type": "number" + }, + "typeOfBed": { + "description": "The type of bed to which the BedDetail refers, i.e. the type of bed available in the quantity indicated by quantity.", + "anyOf": [{ "type": "string" }, { "$ref": "schema:BedType" }] + } + } +} diff --git a/registry/schema-org/BedType.schema.json b/registry/schema-org/BedType.schema.json new file mode 100644 index 0000000..18a3d5d --- /dev/null +++ b/registry/schema-org/BedType.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:BedType", + "title": "BedType", + "description": "A type of bed. This is used for indicating the bed or beds available in an accommodation.", + "type": "object", + "allOf": [ + { + "description": "A predefined value for a product characteristic, e.g. the power cord plug type 'US' or the garment sizes 'S', 'M', 'L', and 'XL'.", + "$ref": "schema:QualitativeValue" + } + ] +} diff --git a/registry/schema-org/BefriendAction.schema.json b/registry/schema-org/BefriendAction.schema.json new file mode 100644 index 0000000..85d8b84 --- /dev/null +++ b/registry/schema-org/BefriendAction.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:BefriendAction", + "title": "BefriendAction", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "The act of interacting with another person or organization.", + "$ref": "schema:InteractAction" + } + ] +} diff --git a/registry/schema-org/BikeStore.schema.json b/registry/schema-org/BikeStore.schema.json new file mode 100644 index 0000000..11a8550 --- /dev/null +++ b/registry/schema-org/BikeStore.schema.json @@ -0,0 +1,8 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:BikeStore", + "title": "BikeStore", + "description": "A bike store.", + "type": "object", + "allOf": [{ "description": "A retail good store.", "$ref": "schema:Store" }] +} diff --git a/registry/schema-org/BioChemEntity.schema.json b/registry/schema-org/BioChemEntity.schema.json new file mode 100644 index 0000000..7025a01 --- /dev/null +++ b/registry/schema-org/BioChemEntity.schema.json @@ -0,0 +1,180 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:BioChemEntity", + "title": "BioChemEntity", + "description": "Any biological, chemical, or biochemical thing. For example: a protein; a gene; a chemical; a synthetic chemical.", + "type": "object", + "allOf": [ + { "description": "The most generic type of item.", "$ref": "schema:Thing" } + ], + "properties": { + "associatedDisease": { + "description": "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.", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:MedicalCondition" }, + { "$ref": "schema:PropertyValue" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:MedicalCondition" }, + { "$ref": "schema:PropertyValue" } + ] + } + } + ] + }, + "bioChemInteraction": { + "description": "A BioChemEntity that is known to interact with this item.", + "oneOf": [ + { "$ref": "schema:BioChemEntity" }, + { "type": "array", "items": { "$ref": "schema:BioChemEntity" } } + ] + }, + "bioChemSimilarity": { + "description": "A similar BioChemEntity, e.g., obtained by fingerprint similarity algorithms.", + "oneOf": [ + { "$ref": "schema:BioChemEntity" }, + { "type": "array", "items": { "$ref": "schema:BioChemEntity" } } + ] + }, + "biologicalRole": { + "description": "A role played by the BioChemEntity within a biological context.", + "oneOf": [ + { "$ref": "schema:DefinedTerm" }, + { "type": "array", "items": { "$ref": "schema:DefinedTerm" } } + ] + }, + "funding": { + "description": "A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].", + "oneOf": [ + { "$ref": "schema:Grant" }, + { "type": "array", "items": { "$ref": "schema:Grant" } } + ] + }, + "hasBioChemEntityPart": { + "description": "Indicates a BioChemEntity that (in some sense) has this BioChemEntity as a part. ", + "oneOf": [ + { "$ref": "schema:BioChemEntity" }, + { "type": "array", "items": { "$ref": "schema:BioChemEntity" } } + ] + }, + "hasMolecularFunction": { + "description": "Molecular function performed by this BioChemEntity; please use PropertyValue if you want to include any evidence.", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:DefinedTerm" }, + { "$ref": "schema:PropertyValue" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:DefinedTerm" }, + { "$ref": "schema:PropertyValue" } + ] + } + } + ] + }, + "hasRepresentation": { + "description": "A common representation such as a protein sequence or chemical structure for this entity. For images use schema.org/image.", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:PropertyValue" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:PropertyValue" } + ] + } + } + ] + }, + "isEncodedByBioChemEntity": { + "description": "Another BioChemEntity encoding by this one.", + "oneOf": [ + { "$ref": "schema:Gene" }, + { "type": "array", "items": { "$ref": "schema:Gene" } } + ] + }, + "isInvolvedInBiologicalProcess": { + "description": "Biological process this BioChemEntity is involved in; please use PropertyValue if you want to include any evidence.", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:DefinedTerm" }, + { "$ref": "schema:PropertyValue" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:DefinedTerm" }, + { "$ref": "schema:PropertyValue" } + ] + } + } + ] + }, + "isLocatedInSubcellularLocation": { + "description": "Subcellular location where this BioChemEntity is located; please use PropertyValue if you want to include any evidence.", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:DefinedTerm" }, + { "$ref": "schema:PropertyValue" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:DefinedTerm" }, + { "$ref": "schema:PropertyValue" } + ] + } + } + ] + }, + "isPartOfBioChemEntity": { + "description": "Indicates a BioChemEntity that is (in some sense) a part of this BioChemEntity. ", + "oneOf": [ + { "$ref": "schema:BioChemEntity" }, + { "type": "array", "items": { "$ref": "schema:BioChemEntity" } } + ] + }, + "taxonomicRange": { + "description": "The taxonomic grouping of the organism that expresses, encodes, or in some way related to the BioChemEntity.", + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:DefinedTerm" }, + { "$ref": "schema:Taxon" } + ] + } + } +} diff --git a/registry/schema-org/Blog.schema.json b/registry/schema-org/Blog.schema.json new file mode 100644 index 0000000..b0d9fa1 --- /dev/null +++ b/registry/schema-org/Blog.schema.json @@ -0,0 +1,33 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Blog", + "title": "Blog", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "The most generic kind of creative work, including books, movies, photographs, software programs, etc.", + "$ref": "schema:CreativeWork" + } + ], + "properties": { + "blogPost": { + "description": "A posting that is part of this blog.", + "oneOf": [ + { "$ref": "schema:BlogPosting" }, + { "type": "array", "items": { "$ref": "schema:BlogPosting" } } + ] + }, + "blogPosts": { + "description": "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\".", + "oneOf": [ + { "$ref": "schema:BlogPosting" }, + { "type": "array", "items": { "$ref": "schema:BlogPosting" } } + ] + }, + "issn": { + "description": "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.", + "type": "string" + } + } +} diff --git a/registry/schema-org/BlogPosting.schema.json b/registry/schema-org/BlogPosting.schema.json new file mode 100644 index 0000000..c9503a8 --- /dev/null +++ b/registry/schema-org/BlogPosting.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:BlogPosting", + "title": "BlogPosting", + "description": "A blog post.", + "type": "object", + "allOf": [ + { + "description": "A post to a social media platform, including blog posts, tweets, Facebook posts, etc.", + "$ref": "schema:SocialMediaPosting" + } + ] +} diff --git a/registry/schema-org/BloodTest.schema.json b/registry/schema-org/BloodTest.schema.json new file mode 100644 index 0000000..e7b8f7a --- /dev/null +++ b/registry/schema-org/BloodTest.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:BloodTest", + "title": "BloodTest", + "description": "A medical test performed on a sample of a patient's blood.", + "type": "object", + "allOf": [ + { + "description": "Any medical test, typically performed for diagnostic purposes.", + "$ref": "schema:MedicalTest" + } + ] +} diff --git a/registry/schema-org/BoardingPolicyType.schema.json b/registry/schema-org/BoardingPolicyType.schema.json new file mode 100644 index 0000000..af28875 --- /dev/null +++ b/registry/schema-org/BoardingPolicyType.schema.json @@ -0,0 +1,17 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:BoardingPolicyType", + "title": "BoardingPolicyType", + "description": "A type of boarding policy used by an airline.", + "type": "string", + "oneOf": [ + { + "description": "The airline boards by groups based on check-in time, priority, etc.", + "const": "GroupBoardingPolicy" + }, + { + "description": "The airline boards by zones of the plane.", + "const": "ZoneBoardingPolicy" + } + ] +} diff --git a/registry/schema-org/BoatReservation.schema.json b/registry/schema-org/BoatReservation.schema.json new file mode 100644 index 0000000..7b89a30 --- /dev/null +++ b/registry/schema-org/BoatReservation.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:BoatReservation", + "title": "BoatReservation", + "description": "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]].", + "type": "object", + "allOf": [ + { + "description": "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]].", + "$ref": "schema:Reservation" + } + ] +} diff --git a/registry/schema-org/BoatTerminal.schema.json b/registry/schema-org/BoatTerminal.schema.json new file mode 100644 index 0000000..d3adf26 --- /dev/null +++ b/registry/schema-org/BoatTerminal.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:BoatTerminal", + "title": "BoatTerminal", + "description": "A terminal for boats, ships, and other water vessels.", + "type": "object", + "allOf": [ + { + "description": "A public structure, such as a town hall or concert hall.", + "$ref": "schema:CivicStructure" + } + ] +} diff --git a/registry/schema-org/BoatTrip.schema.json b/registry/schema-org/BoatTrip.schema.json new file mode 100644 index 0000000..3f42e25 --- /dev/null +++ b/registry/schema-org/BoatTrip.schema.json @@ -0,0 +1,23 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:BoatTrip", + "title": "BoatTrip", + "description": "A trip on a commercial ferry line.", + "type": "object", + "allOf": [ + { + "description": "A trip or journey. An itinerary of visits to one or more places.", + "$ref": "schema:Trip" + } + ], + "properties": { + "arrivalBoatTerminal": { + "description": "The terminal or port from which the boat arrives.", + "$ref": "schema:BoatTerminal" + }, + "departureBoatTerminal": { + "description": "The terminal or port from which the boat departs.", + "$ref": "schema:BoatTerminal" + } + } +} diff --git a/registry/schema-org/BodyMeasurementTypeEnumeration.schema.json b/registry/schema-org/BodyMeasurementTypeEnumeration.schema.json new file mode 100644 index 0000000..a015cbc --- /dev/null +++ b/registry/schema-org/BodyMeasurementTypeEnumeration.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:BodyMeasurementTypeEnumeration", + "title": "BodyMeasurementTypeEnumeration", + "description": "Enumerates types (or dimensions) of a person's body measurements, for example for fitting of clothes.", + "type": "object", + "allOf": [ + { + "description": "Enumeration of common measurement types (or dimensions), for example \"chest\" for a person, \"inseam\" for pants, \"gauge\" for screws, or \"wheel\" for bicycles.", + "$ref": "schema:MeasurementTypeEnumeration" + } + ] +} diff --git a/registry/schema-org/BodyOfWater.schema.json b/registry/schema-org/BodyOfWater.schema.json new file mode 100644 index 0000000..357eb3a --- /dev/null +++ b/registry/schema-org/BodyOfWater.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:BodyOfWater", + "title": "BodyOfWater", + "description": "A body of water, such as a sea, ocean, or lake.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:Landform" + } + ] +} diff --git a/registry/schema-org/Bone.schema.json b/registry/schema-org/Bone.schema.json new file mode 100644 index 0000000..d358fd5 --- /dev/null +++ b/registry/schema-org/Bone.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Bone", + "title": "Bone", + "description": "Rigid connective tissue that comprises up the skeletal structure of the human body.", + "type": "object", + "allOf": [ + { + "description": "Any part of the human body, typically a component of an anatomical system. Organs, tissues, and cells are all anatomical structures.", + "$ref": "schema:AnatomicalStructure" + } + ] +} diff --git a/registry/schema-org/Book.schema.json b/registry/schema-org/Book.schema.json new file mode 100644 index 0000000..ee754fe --- /dev/null +++ b/registry/schema-org/Book.schema.json @@ -0,0 +1,36 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Book", + "title": "Book", + "description": "A book.", + "type": "object", + "allOf": [ + { + "description": "The most generic kind of creative work, including books, movies, photographs, software programs, etc.", + "$ref": "schema:CreativeWork" + } + ], + "properties": { + "abridged": { + "description": "Indicates whether the book is an abridged edition.", + "type": "boolean" + }, + "bookEdition": { + "description": "The edition of the book.", + "type": "string" + }, + "bookFormat": { + "description": "The format of the book.", + "$ref": "schema:BookFormatType" + }, + "illustrator": { + "description": "The illustrator of the book.", + "$ref": "schema:Person" + }, + "isbn": { "description": "The ISBN of the book.", "type": "string" }, + "numberOfPages": { + "description": "The number of pages in the book.", + "type": "integer" + } + } +} diff --git a/registry/schema-org/BookFormatType.schema.json b/registry/schema-org/BookFormatType.schema.json new file mode 100644 index 0000000..51f1ce3 --- /dev/null +++ b/registry/schema-org/BookFormatType.schema.json @@ -0,0 +1,20 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:BookFormatType", + "title": "BookFormatType", + "description": "The publication format of the book.", + "type": "string", + "oneOf": [ + { + "description": "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.", + "const": "AudiobookFormat" + }, + { "description": "Book format: Ebook.", "const": "EBook" }, + { + "description": "Book format: GraphicNovel. May represent a bound collection of ComicIssue instances.", + "const": "GraphicNovel" + }, + { "description": "Book format: Hardcover.", "const": "Hardcover" }, + { "description": "Book format: Paperback.", "const": "Paperback" } + ] +} diff --git a/registry/schema-org/BookSeries.schema.json b/registry/schema-org/BookSeries.schema.json new file mode 100644 index 0000000..7436ab1 --- /dev/null +++ b/registry/schema-org/BookSeries.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:BookSeries", + "title": "BookSeries", + "description": "A series of books. Included books can be indicated with the hasPart property.", + "type": "object", + "allOf": [ + { + "description": "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 ", + "$ref": "schema:CreativeWorkSeries" + } + ] +} diff --git a/registry/schema-org/BookStore.schema.json b/registry/schema-org/BookStore.schema.json new file mode 100644 index 0000000..4e57e24 --- /dev/null +++ b/registry/schema-org/BookStore.schema.json @@ -0,0 +1,8 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:BookStore", + "title": "BookStore", + "description": "A bookstore.", + "type": "object", + "allOf": [{ "description": "A retail good store.", "$ref": "schema:Store" }] +} diff --git a/registry/schema-org/BookmarkAction.schema.json b/registry/schema-org/BookmarkAction.schema.json new file mode 100644 index 0000000..6186d56 --- /dev/null +++ b/registry/schema-org/BookmarkAction.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:BookmarkAction", + "title": "BookmarkAction", + "description": "An agent bookmarks/flags/labels/tags/marks an object.", + "type": "object", + "allOf": [ + { + "description": "The act of manipulating/administering/supervising/controlling one or more objects.", + "$ref": "schema:OrganizeAction" + } + ] +} diff --git a/registry/schema-org/BorrowAction.schema.json b/registry/schema-org/BorrowAction.schema.json new file mode 100644 index 0000000..54e81b3 --- /dev/null +++ b/registry/schema-org/BorrowAction.schema.json @@ -0,0 +1,35 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:BorrowAction", + "title": "BorrowAction", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "The act of transferring/moving (abstract or concrete) animate or inanimate objects from one place to another.", + "$ref": "schema:TransferAction" + } + ], + "properties": { + "lender": { + "description": "A sub property of participant. The person that lends the object being borrowed.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + } + } + ] + } + } +} diff --git a/registry/schema-org/BowlingAlley.schema.json b/registry/schema-org/BowlingAlley.schema.json new file mode 100644 index 0000000..d0ab9b3 --- /dev/null +++ b/registry/schema-org/BowlingAlley.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:BowlingAlley", + "title": "BowlingAlley", + "description": "A bowling alley.", + "type": "object", + "allOf": [ + { + "description": "A sports location, such as a playing field.", + "$ref": "schema:SportsActivityLocation" + } + ] +} diff --git a/registry/schema-org/BrainStructure.schema.json b/registry/schema-org/BrainStructure.schema.json new file mode 100644 index 0000000..5df7df7 --- /dev/null +++ b/registry/schema-org/BrainStructure.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:BrainStructure", + "title": "BrainStructure", + "description": "Any anatomical structure which pertains to the soft nervous tissue functioning as the coordinating center of sensation and intellectual and nervous activity.", + "type": "object", + "allOf": [ + { + "description": "Any part of the human body, typically a component of an anatomical system. Organs, tissues, and cells are all anatomical structures.", + "$ref": "schema:AnatomicalStructure" + } + ] +} diff --git a/registry/schema-org/Brand.schema.json b/registry/schema-org/Brand.schema.json new file mode 100644 index 0000000..f667ec2 --- /dev/null +++ b/registry/schema-org/Brand.schema.json @@ -0,0 +1,53 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Brand", + "title": "Brand", + "description": "A brand is a name used by an organization or business person for labeling a product, product group, or similar.", + "type": "object", + "allOf": [ + { + "description": "A utility class that serves as the umbrella for a number of 'intangible' things such as quantities, structured values, etc.", + "$ref": "schema:Intangible" + } + ], + "properties": { + "aggregateRating": { + "description": "The overall rating, based on a collection of reviews or ratings, of the item.", + "$ref": "schema:AggregateRating" + }, + "logo": { + "description": "An associated logo.", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:ImageObject" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:ImageObject" } + ] + } + } + ] + }, + "review": { + "description": "A review of the item.", + "oneOf": [ + { "$ref": "schema:Review" }, + { "type": "array", "items": { "$ref": "schema:Review" } } + ] + }, + "slogan": { + "description": "A slogan or motto associated with the item.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + } + } +} diff --git a/registry/schema-org/BreadcrumbList.schema.json b/registry/schema-org/BreadcrumbList.schema.json new file mode 100644 index 0000000..2c83a74 --- /dev/null +++ b/registry/schema-org/BreadcrumbList.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:BreadcrumbList", + "title": "BreadcrumbList", + "description": "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 ", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:ItemList" + } + ] +} diff --git a/registry/schema-org/Brewery.schema.json b/registry/schema-org/Brewery.schema.json new file mode 100644 index 0000000..8ef6cf0 --- /dev/null +++ b/registry/schema-org/Brewery.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Brewery", + "title": "Brewery", + "description": "Brewery.", + "type": "object", + "allOf": [ + { + "description": "A food-related business.", + "$ref": "schema:FoodEstablishment" + } + ] +} diff --git a/registry/schema-org/Bridge.schema.json b/registry/schema-org/Bridge.schema.json new file mode 100644 index 0000000..3da21a9 --- /dev/null +++ b/registry/schema-org/Bridge.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Bridge", + "title": "Bridge", + "description": "A bridge.", + "type": "object", + "allOf": [ + { + "description": "A public structure, such as a town hall or concert hall.", + "$ref": "schema:CivicStructure" + } + ] +} diff --git a/registry/schema-org/BroadcastChannel.schema.json b/registry/schema-org/BroadcastChannel.schema.json new file mode 100644 index 0000000..f3de1e6 --- /dev/null +++ b/registry/schema-org/BroadcastChannel.schema.json @@ -0,0 +1,42 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:BroadcastChannel", + "title": "BroadcastChannel", + "description": "A unique instance of a BroadcastService on a CableOrSatelliteService lineup.", + "type": "object", + "allOf": [ + { + "description": "A utility class that serves as the umbrella for a number of 'intangible' things such as quantities, structured values, etc.", + "$ref": "schema:Intangible" + } + ], + "properties": { + "broadcastChannelId": { + "description": "The unique address by which the BroadcastService can be identified in a provider lineup. In US, this is typically a number.", + "type": "string" + }, + "broadcastFrequency": { + "description": "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 frequencies of AM and FM radio channels, e.g. \"87 FM\".", + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:BroadcastFrequencySpecification" } + ] + }, + "broadcastServiceTier": { + "description": "The type of service required to have access to the channel (e.g. Standard or Premium).", + "type": "string" + }, + "genre": { + "description": "Genre of the creative work, broadcast channel or group.", + "anyOf": [{ "type": "string", "format": "uri" }, { "type": "string" }] + }, + "inBroadcastLineup": { + "description": "The CableOrSatelliteService offering the channel.", + "$ref": "schema:CableOrSatelliteService" + }, + "providesBroadcastService": { + "description": "The BroadcastService offered on this channel.", + "$ref": "schema:BroadcastService" + } + } +} diff --git a/registry/schema-org/BroadcastEvent.schema.json b/registry/schema-org/BroadcastEvent.schema.json new file mode 100644 index 0000000..f1c80a2 --- /dev/null +++ b/registry/schema-org/BroadcastEvent.schema.json @@ -0,0 +1,39 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:BroadcastEvent", + "title": "BroadcastEvent", + "description": "An over the air or online broadcast event.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:PublicationEvent" + } + ], + "properties": { + "broadcastOfEvent": { + "description": "The event being broadcast such as a sporting event or awards ceremony.", + "$ref": "schema:Event" + }, + "isLiveBroadcast": { + "description": "True if the broadcast is of a live event.", + "type": "boolean" + }, + "subtitleLanguage": { + "description": "Languages in which subtitles/captions are available, in [IETF BCP 47 standard format](http://tools.ietf.org/html/bcp47).", + "oneOf": [ + { "anyOf": [{ "type": "string" }, { "$ref": "schema:Language" }] }, + { + "type": "array", + "items": { + "anyOf": [{ "type": "string" }, { "$ref": "schema:Language" }] + } + } + ] + }, + "videoFormat": { + "description": "The type of screening or video broadcast used (e.g. IMAX, 3D, SD, HD, etc.).", + "type": "string" + } + } +} diff --git a/registry/schema-org/BroadcastFrequencySpecification.schema.json b/registry/schema-org/BroadcastFrequencySpecification.schema.json new file mode 100644 index 0000000..362bc1a --- /dev/null +++ b/registry/schema-org/BroadcastFrequencySpecification.schema.json @@ -0,0 +1,27 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:BroadcastFrequencySpecification", + "title": "BroadcastFrequencySpecification", + "description": "The frequency in MHz and the modulation used for a particular BroadcastService.", + "type": "object", + "allOf": [ + { + "description": "A utility class that serves as the umbrella for a number of 'intangible' things such as quantities, structured values, etc.", + "$ref": "schema:Intangible" + } + ], + "properties": { + "broadcastFrequencyValue": { + "description": "The frequency in MHz for a particular broadcast.", + "anyOf": [{ "type": "number" }, { "$ref": "schema:QuantitativeValue" }] + }, + "broadcastSignalModulation": { + "description": "The modulation (e.g. FM, AM, etc) used by a particular broadcast service.", + "anyOf": [{ "type": "string" }, { "$ref": "schema:QualitativeValue" }] + }, + "broadcastSubChannel": { + "description": "The subchannel used for the broadcast.", + "type": "string" + } + } +} diff --git a/registry/schema-org/BroadcastService.schema.json b/registry/schema-org/BroadcastService.schema.json new file mode 100644 index 0000000..c0203b9 --- /dev/null +++ b/registry/schema-org/BroadcastService.schema.json @@ -0,0 +1,71 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:BroadcastService", + "title": "BroadcastService", + "description": "A delivery service through which content is provided via broadcast over the air or online.", + "type": "object", + "allOf": [ + { + "description": "A service provided by an organization, e.g. delivery service, print services, etc.", + "$ref": "schema:Service" + } + ], + "properties": { + "area": { + "description": "The area within which users can expect to reach the broadcast service.", + "$ref": "schema:Place" + }, + "broadcastAffiliateOf": { + "description": "The media network(s) whose content is broadcast on this station.", + "$ref": "schema:Organization" + }, + "broadcastDisplayName": { + "description": "The name displayed in the channel guide. For many US affiliates, it is the network name.", + "type": "string" + }, + "broadcastFrequency": { + "description": "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 frequencies of AM and FM radio channels, e.g. \"87 FM\".", + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:BroadcastFrequencySpecification" } + ] + }, + "broadcastTimezone": { + "description": "The timezone in [ISO 8601 format](http://en.wikipedia.org/wiki/ISO_8601) for which the service bases its broadcasts.", + "type": "string" + }, + "broadcaster": { + "description": "The organization owning or operating the broadcast service.", + "$ref": "schema:Organization" + }, + "callSign": { + "description": "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.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "hasBroadcastChannel": { + "description": "A broadcast channel of a broadcast service.", + "oneOf": [ + { "$ref": "schema:BroadcastChannel" }, + { "type": "array", "items": { "$ref": "schema:BroadcastChannel" } } + ] + }, + "inLanguage": { + "description": "The language of the content or performance or used in an action. Please use one of the language codes from the [IETF BCP 47 standard](http://tools.ietf.org/html/bcp47). See also [[availableLanguage]].", + "anyOf": [{ "type": "string" }, { "$ref": "schema:Language" }] + }, + "parentService": { + "description": "A broadcast service to which the broadcast service may belong to such as regional variations of a national channel.", + "oneOf": [ + { "$ref": "schema:BroadcastService" }, + { "type": "array", "items": { "$ref": "schema:BroadcastService" } } + ] + }, + "videoFormat": { + "description": "The type of screening or video broadcast used (e.g. IMAX, 3D, SD, HD, etc.).", + "type": "string" + } + } +} diff --git a/registry/schema-org/BrokerageAccount.schema.json b/registry/schema-org/BrokerageAccount.schema.json new file mode 100644 index 0000000..a3eba48 --- /dev/null +++ b/registry/schema-org/BrokerageAccount.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:BrokerageAccount", + "title": "BrokerageAccount", + "description": "An account that allows an investor to deposit funds and place investment orders with a licensed broker or brokerage firm.", + "type": "object", + "allOf": [ + { + "description": "A type of financial product that typically requires the client to transfer funds to a financial service in return for potential beneficial financial return.", + "$ref": "schema:InvestmentOrDeposit" + } + ] +} diff --git a/registry/schema-org/BuddhistTemple.schema.json b/registry/schema-org/BuddhistTemple.schema.json new file mode 100644 index 0000000..8539142 --- /dev/null +++ b/registry/schema-org/BuddhistTemple.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:BuddhistTemple", + "title": "BuddhistTemple", + "description": "A Buddhist temple.", + "type": "object", + "allOf": [ + { + "description": "Place of worship, such as a church, synagogue, or mosque.", + "$ref": "schema:PlaceOfWorship" + } + ] +} diff --git a/registry/schema-org/BusOrCoach.schema.json b/registry/schema-org/BusOrCoach.schema.json new file mode 100644 index 0000000..7a18f35 --- /dev/null +++ b/registry/schema-org/BusOrCoach.schema.json @@ -0,0 +1,23 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:BusOrCoach", + "title": "BusOrCoach", + "description": "A bus (also omnibus or autobus) is a road vehicle designed to carry passengers. Coaches are luxury buses, usually in service for long distance travel.", + "type": "object", + "allOf": [ + { + "description": "A vehicle is a device that is designed or used to transport people or cargo over land, water, air, or through space.", + "$ref": "schema:Vehicle" + } + ], + "properties": { + "acrissCode": { + "description": "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.", + "type": "string" + }, + "roofLoad": { + "description": "The permitted total weight of cargo and installations (e.g. a roof rack) on top of the vehicle.\\n\\nTypical unit code(s): KGM for kilogram, LBR for pound\\n\\n* Note 1: You can indicate additional information in the [[name]] of the [[QuantitativeValue]] node.\\n* Note 2: You may also link to a [[QualitativeValue]] node that provides additional information using [[valueReference]]\\n* Note 3: Note that you can use [[minValue]] and [[maxValue]] to indicate ranges.", + "$ref": "schema:QuantitativeValue" + } + } +} diff --git a/registry/schema-org/BusReservation.schema.json b/registry/schema-org/BusReservation.schema.json new file mode 100644 index 0000000..c735165 --- /dev/null +++ b/registry/schema-org/BusReservation.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:BusReservation", + "title": "BusReservation", + "description": "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]].", + "type": "object", + "allOf": [ + { + "description": "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]].", + "$ref": "schema:Reservation" + } + ] +} diff --git a/registry/schema-org/BusStation.schema.json b/registry/schema-org/BusStation.schema.json new file mode 100644 index 0000000..b3e1d11 --- /dev/null +++ b/registry/schema-org/BusStation.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:BusStation", + "title": "BusStation", + "description": "A bus station.", + "type": "object", + "allOf": [ + { + "description": "A public structure, such as a town hall or concert hall.", + "$ref": "schema:CivicStructure" + } + ] +} diff --git a/registry/schema-org/BusStop.schema.json b/registry/schema-org/BusStop.schema.json new file mode 100644 index 0000000..68b2f01 --- /dev/null +++ b/registry/schema-org/BusStop.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:BusStop", + "title": "BusStop", + "description": "A bus stop.", + "type": "object", + "allOf": [ + { + "description": "A public structure, such as a town hall or concert hall.", + "$ref": "schema:CivicStructure" + } + ] +} diff --git a/registry/schema-org/BusTrip.schema.json b/registry/schema-org/BusTrip.schema.json new file mode 100644 index 0000000..15c49d9 --- /dev/null +++ b/registry/schema-org/BusTrip.schema.json @@ -0,0 +1,31 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:BusTrip", + "title": "BusTrip", + "description": "A trip on a commercial bus line.", + "type": "object", + "allOf": [ + { + "description": "A trip or journey. An itinerary of visits to one or more places.", + "$ref": "schema:Trip" + } + ], + "properties": { + "arrivalBusStop": { + "description": "The stop or station from which the bus arrives.", + "anyOf": [{ "$ref": "schema:BusStation" }, { "$ref": "schema:BusStop" }] + }, + "busName": { + "description": "The name of the bus (e.g. Bolt Express).", + "type": "string" + }, + "busNumber": { + "description": "The unique identifier for the bus.", + "type": "string" + }, + "departureBusStop": { + "description": "The stop or station from which the bus departs.", + "anyOf": [{ "$ref": "schema:BusStation" }, { "$ref": "schema:BusStop" }] + } + } +} diff --git a/registry/schema-org/BusinessAudience.schema.json b/registry/schema-org/BusinessAudience.schema.json new file mode 100644 index 0000000..8a02fe6 --- /dev/null +++ b/registry/schema-org/BusinessAudience.schema.json @@ -0,0 +1,27 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:BusinessAudience", + "title": "BusinessAudience", + "description": "A set of characteristics belonging to businesses, e.g. who compose an item's target audience.", + "type": "object", + "allOf": [ + { + "description": "Intended audience for an item, i.e. the group for whom the item was created.", + "$ref": "schema:Audience" + } + ], + "properties": { + "numberOfEmployees": { + "description": "The number of employees in an organization, e.g. business.", + "$ref": "schema:QuantitativeValue" + }, + "yearlyRevenue": { + "description": "The size of the business in annual revenue.", + "$ref": "schema:QuantitativeValue" + }, + "yearsInOperation": { + "description": "The age of the business.", + "$ref": "schema:QuantitativeValue" + } + } +} diff --git a/registry/schema-org/BusinessEntityType.schema.json b/registry/schema-org/BusinessEntityType.schema.json new file mode 100644 index 0000000..999eb9c --- /dev/null +++ b/registry/schema-org/BusinessEntityType.schema.json @@ -0,0 +1,7 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:BusinessEntityType", + "title": "BusinessEntityType", + "description": "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 ", + "type": "object" +} diff --git a/registry/schema-org/BusinessEvent.schema.json b/registry/schema-org/BusinessEvent.schema.json new file mode 100644 index 0000000..c98f1f3 --- /dev/null +++ b/registry/schema-org/BusinessEvent.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:BusinessEvent", + "title": "BusinessEvent", + "description": "Event type: Business event.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:Event" + } + ] +} diff --git a/registry/schema-org/BusinessFunction.schema.json b/registry/schema-org/BusinessFunction.schema.json new file mode 100644 index 0000000..d407cff --- /dev/null +++ b/registry/schema-org/BusinessFunction.schema.json @@ -0,0 +1,7 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:BusinessFunction", + "title": "BusinessFunction", + "description": "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 ", + "type": "object" +} diff --git a/registry/schema-org/BuyAction.schema.json b/registry/schema-org/BuyAction.schema.json new file mode 100644 index 0000000..6467a3e --- /dev/null +++ b/registry/schema-org/BuyAction.schema.json @@ -0,0 +1,43 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:BuyAction", + "title": "BuyAction", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:TradeAction" + } + ], + "properties": { + "seller": { + "description": "An entity which offers (sells / leases / lends / loans) the services / goods. A seller may also be a provider.", + "anyOf": [{ "$ref": "schema:Organization" }, { "$ref": "schema:Person" }] + }, + "vendor": { + "description": "'vendor' is an earlier term for 'seller'.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + } + } + ] + }, + "warrantyPromise": { + "description": "The warranty promise(s) included in the offer.", + "$ref": "schema:WarrantyPromise" + } + } +} diff --git a/registry/schema-org/CDCPMDRecord.schema.json b/registry/schema-org/CDCPMDRecord.schema.json new file mode 100644 index 0000000..f5c02d0 --- /dev/null +++ b/registry/schema-org/CDCPMDRecord.schema.json @@ -0,0 +1,147 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:CDCPMDRecord", + "title": "CDCPMDRecord", + "description": "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 ", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:StructuredValue" + } + ], + "properties": { + "cvdCollectionDate": { + "description": "collectiondate - Date for which patient counts are reported.", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "date-time" }, + { "type": "string" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "date-time" }, + { "type": "string" } + ] + } + } + ] + }, + "cvdFacilityCounty": { + "description": "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.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "cvdFacilityId": { + "description": "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.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "cvdNumBeds": { + "description": "numbeds - HOSPITAL INPATIENT BEDS: Inpatient beds, including all staffed, licensed, and overflow (surge) beds used for inpatients.", + "oneOf": [ + { "type": "number" }, + { "type": "array", "items": { "type": "number" } } + ] + }, + "cvdNumBedsOcc": { + "description": "numbedsocc - HOSPITAL INPATIENT BED OCCUPANCY: Total number of staffed inpatient beds that are occupied.", + "oneOf": [ + { "type": "number" }, + { "type": "array", "items": { "type": "number" } } + ] + }, + "cvdNumC19Died": { + "description": "numc19died - DEATHS: Patients with suspected or confirmed COVID-19 who died in the hospital, ED, or any overflow location.", + "oneOf": [ + { "type": "number" }, + { "type": "array", "items": { "type": "number" } } + ] + }, + "cvdNumC19HOPats": { + "description": "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.", + "oneOf": [ + { "type": "number" }, + { "type": "array", "items": { "type": "number" } } + ] + }, + "cvdNumC19HospPats": { + "description": "numc19hosppats - HOSPITALIZED: Patients currently hospitalized in an inpatient care location who have suspected or confirmed COVID-19.", + "oneOf": [ + { "type": "number" }, + { "type": "array", "items": { "type": "number" } } + ] + }, + "cvdNumC19MechVentPats": { + "description": "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.", + "oneOf": [ + { "type": "number" }, + { "type": "array", "items": { "type": "number" } } + ] + }, + "cvdNumC19OFMechVentPats": { + "description": "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.", + "oneOf": [ + { "type": "number" }, + { "type": "array", "items": { "type": "number" } } + ] + }, + "cvdNumC19OverflowPats": { + "description": "numc19overflowpats - ED/OVERFLOW: Patients with suspected or confirmed COVID-19 who are in the ED or any overflow location awaiting an inpatient bed.", + "oneOf": [ + { "type": "number" }, + { "type": "array", "items": { "type": "number" } } + ] + }, + "cvdNumICUBeds": { + "description": "numicubeds - ICU BEDS: Total number of staffed inpatient intensive care unit (ICU) beds.", + "oneOf": [ + { "type": "number" }, + { "type": "array", "items": { "type": "number" } } + ] + }, + "cvdNumICUBedsOcc": { + "description": "numicubedsocc - ICU BED OCCUPANCY: Total number of staffed inpatient ICU beds that are occupied.", + "oneOf": [ + { "type": "number" }, + { "type": "array", "items": { "type": "number" } } + ] + }, + "cvdNumTotBeds": { + "description": "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.", + "oneOf": [ + { "type": "number" }, + { "type": "array", "items": { "type": "number" } } + ] + }, + "cvdNumVent": { + "description": "numvent - MECHANICAL VENTILATORS: Total number of ventilators available.", + "oneOf": [ + { "type": "number" }, + { "type": "array", "items": { "type": "number" } } + ] + }, + "cvdNumVentUse": { + "description": "numventuse - MECHANICAL VENTILATORS IN USE: Total number of ventilators in use.", + "oneOf": [ + { "type": "number" }, + { "type": "array", "items": { "type": "number" } } + ] + }, + "datePosted": { + "description": "Publication date of an online listing.", + "anyOf": [ + { "type": "string", "format": "date" }, + { "type": "string", "format": "date-time" } + ] + } + } +} diff --git a/registry/schema-org/CableOrSatelliteService.schema.json b/registry/schema-org/CableOrSatelliteService.schema.json new file mode 100644 index 0000000..5560be3 --- /dev/null +++ b/registry/schema-org/CableOrSatelliteService.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:CableOrSatelliteService", + "title": "CableOrSatelliteService", + "description": "A service which provides access to media programming like TV or radio. Access may be via cable or satellite.", + "type": "object", + "allOf": [ + { + "description": "A service provided by an organization, e.g. delivery service, print services, etc.", + "$ref": "schema:Service" + } + ] +} diff --git a/registry/schema-org/CafeOrCoffeeShop.schema.json b/registry/schema-org/CafeOrCoffeeShop.schema.json new file mode 100644 index 0000000..92ee153 --- /dev/null +++ b/registry/schema-org/CafeOrCoffeeShop.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:CafeOrCoffeeShop", + "title": "CafeOrCoffeeShop", + "description": "A cafe or coffee shop.", + "type": "object", + "allOf": [ + { + "description": "A food-related business.", + "$ref": "schema:FoodEstablishment" + } + ] +} diff --git a/registry/schema-org/Campground.schema.json b/registry/schema-org/Campground.schema.json new file mode 100644 index 0000000..c0092f1 --- /dev/null +++ b/registry/schema-org/Campground.schema.json @@ -0,0 +1,17 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Campground", + "title": "Campground", + "description": "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).\n", + "type": "object", + "allOf": [ + { + "description": "A public structure, such as a town hall or concert hall.", + "$ref": "schema:CivicStructure" + }, + { + "description": "A lodging business, such as a motel, hotel, or inn.", + "$ref": "schema:LodgingBusiness" + } + ] +} diff --git a/registry/schema-org/CampingPitch.schema.json b/registry/schema-org/CampingPitch.schema.json new file mode 100644 index 0000000..9b37bde --- /dev/null +++ b/registry/schema-org/CampingPitch.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:CampingPitch", + "title": "CampingPitch", + "description": "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).\n", + "type": "object", + "allOf": [ + { + "description": "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.\n", + "$ref": "schema:Accommodation" + } + ] +} diff --git a/registry/schema-org/Canal.schema.json b/registry/schema-org/Canal.schema.json new file mode 100644 index 0000000..fad7e64 --- /dev/null +++ b/registry/schema-org/Canal.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Canal", + "title": "Canal", + "description": "A canal, like the Panama Canal.", + "type": "object", + "allOf": [ + { + "description": "A body of water, such as a sea, ocean, or lake.", + "$ref": "schema:BodyOfWater" + } + ] +} diff --git a/registry/schema-org/CancelAction.schema.json b/registry/schema-org/CancelAction.schema.json new file mode 100644 index 0000000..2d907d1 --- /dev/null +++ b/registry/schema-org/CancelAction.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:CancelAction", + "title": "CancelAction", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "The act of planning the execution of an event/task/action/reservation/plan to a future date.", + "$ref": "schema:PlanAction" + } + ] +} diff --git a/registry/schema-org/Car.schema.json b/registry/schema-org/Car.schema.json new file mode 100644 index 0000000..9d5a894 --- /dev/null +++ b/registry/schema-org/Car.schema.json @@ -0,0 +1,23 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Car", + "title": "Car", + "description": "A car is a wheeled, self-powered motor vehicle used for transportation.", + "type": "object", + "allOf": [ + { + "description": "A vehicle is a device that is designed or used to transport people or cargo over land, water, air, or through space.", + "$ref": "schema:Vehicle" + } + ], + "properties": { + "acrissCode": { + "description": "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.", + "type": "string" + }, + "roofLoad": { + "description": "The permitted total weight of cargo and installations (e.g. a roof rack) on top of the vehicle.\\n\\nTypical unit code(s): KGM for kilogram, LBR for pound\\n\\n* Note 1: You can indicate additional information in the [[name]] of the [[QuantitativeValue]] node.\\n* Note 2: You may also link to a [[QualitativeValue]] node that provides additional information using [[valueReference]]\\n* Note 3: Note that you can use [[minValue]] and [[maxValue]] to indicate ranges.", + "$ref": "schema:QuantitativeValue" + } + } +} diff --git a/registry/schema-org/CarUsageType.schema.json b/registry/schema-org/CarUsageType.schema.json new file mode 100644 index 0000000..9c8b0a3 --- /dev/null +++ b/registry/schema-org/CarUsageType.schema.json @@ -0,0 +1,21 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:CarUsageType", + "title": "CarUsageType", + "description": "A value indicating a special usage of a car, e.g. commercial rental, driving school, or as a taxi.", + "type": "string", + "oneOf": [ + { + "description": "Indicates the usage of the vehicle for driving school.", + "const": "DrivingSchoolVehicleUsage" + }, + { + "description": "Indicates the usage of the vehicle as a rental car.", + "const": "RentalVehicleUsage" + }, + { + "description": "Indicates the usage of the car as a taxi.", + "const": "TaxiVehicleUsage" + } + ] +} diff --git a/registry/schema-org/Casino.schema.json b/registry/schema-org/Casino.schema.json new file mode 100644 index 0000000..10c2af0 --- /dev/null +++ b/registry/schema-org/Casino.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Casino", + "title": "Casino", + "description": "A casino.", + "type": "object", + "allOf": [ + { + "description": "A business providing entertainment.", + "$ref": "schema:EntertainmentBusiness" + } + ] +} diff --git a/registry/schema-org/CategoryCode.schema.json b/registry/schema-org/CategoryCode.schema.json new file mode 100644 index 0000000..0b805cc --- /dev/null +++ b/registry/schema-org/CategoryCode.schema.json @@ -0,0 +1,39 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:CategoryCode", + "title": "CategoryCode", + "description": "A Category Code.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:DefinedTerm" + } + ], + "properties": { + "codeValue": { + "description": "A short textual code that uniquely identifies the value.", + "type": "string" + }, + "inCodeSet": { + "description": "A [[CategoryCodeSet]] that contains this category code.", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:CategoryCodeSet" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:CategoryCodeSet" } + ] + } + } + ] + } + } +} diff --git a/registry/schema-org/CategoryCodeSet.schema.json b/registry/schema-org/CategoryCodeSet.schema.json new file mode 100644 index 0000000..9690330 --- /dev/null +++ b/registry/schema-org/CategoryCodeSet.schema.json @@ -0,0 +1,22 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:CategoryCodeSet", + "title": "CategoryCodeSet", + "description": "A set of Category Code values.", + "type": "object", + "allOf": [ + { + "description": "A set of defined terms, for example a set of categories or a classification scheme, a glossary, dictionary or enumeration.", + "$ref": "schema:DefinedTermSet" + } + ], + "properties": { + "hasCategoryCode": { + "description": "A Category code contained in this code set.", + "oneOf": [ + { "$ref": "schema:CategoryCode" }, + { "type": "array", "items": { "$ref": "schema:CategoryCode" } } + ] + } + } +} diff --git a/registry/schema-org/CatholicChurch.schema.json b/registry/schema-org/CatholicChurch.schema.json new file mode 100644 index 0000000..76a2574 --- /dev/null +++ b/registry/schema-org/CatholicChurch.schema.json @@ -0,0 +1,8 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:CatholicChurch", + "title": "CatholicChurch", + "description": "A Catholic church.", + "type": "object", + "allOf": [{ "description": "A church.", "$ref": "schema:Church" }] +} diff --git a/registry/schema-org/Cemetery.schema.json b/registry/schema-org/Cemetery.schema.json new file mode 100644 index 0000000..0f1c4bf --- /dev/null +++ b/registry/schema-org/Cemetery.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Cemetery", + "title": "Cemetery", + "description": "A graveyard.", + "type": "object", + "allOf": [ + { + "description": "A public structure, such as a town hall or concert hall.", + "$ref": "schema:CivicStructure" + } + ] +} diff --git a/registry/schema-org/Certification.schema.json b/registry/schema-org/Certification.schema.json new file mode 100644 index 0000000..619d204 --- /dev/null +++ b/registry/schema-org/Certification.schema.json @@ -0,0 +1,124 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Certification", + "title": "Certification", + "description": "A Certification is an official and authoritative statement about a subject, for example a product, service, person, or organization. A certification is typically issued by an indendent certification body, for example a professional organization or government. It formally attests certain characteristics about the subject, for example Organizations can be ISO certified, Food products can be certified Organic or Vegan, a Person can be a certified professional, a Place can be certified for food processing. There are certifications for many domains: regulatory, organizational, recycling, food, efficiency, educational, ecological, etc. A certification is a form of credential, as are accreditations and licenses. Mapped from the [gs1:CertificationDetails](https://www.gs1.org/voc/CertificationDetails) class in the GS1 Web Vocabulary.", + "type": "object", + "allOf": [ + { + "description": "The most generic kind of creative work, including books, movies, photographs, software programs, etc.", + "$ref": "schema:CreativeWork" + } + ], + "properties": { + "about": { + "description": "The subject matter of the content.", + "$ref": "schema:Thing" + }, + "auditDate": { + "description": "Date when a certification was last audited. See also [gs1:certificationAuditDate](https://www.gs1.org/voc/certificationAuditDate).", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "date" }, + { "type": "string", "format": "date-time" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "date" }, + { "type": "string", "format": "date-time" } + ] + } + } + ] + }, + "certificationIdentification": { + "description": "Identifier of a certification instance (as registered with an independent certification body). Typically this identifier can be used to consult and verify the certification instance. See also [gs1:certificationIdentification](https://www.gs1.org/voc/certificationIdentification).", + "oneOf": [ + { "anyOf": [{ "type": "string" }, { "$ref": "schema:DefinedTerm" }] }, + { + "type": "array", + "items": { + "anyOf": [{ "type": "string" }, { "$ref": "schema:DefinedTerm" }] + } + } + ] + }, + "certificationRating": { + "description": "Rating of a certification instance (as defined by an independent certification body). Typically this rating can be used to rate the level to which the requirements of the certification instance are fulfilled. See also [gs1:certificationValue](https://www.gs1.org/voc/certificationValue).", + "oneOf": [ + { "$ref": "schema:Rating" }, + { "type": "array", "items": { "$ref": "schema:Rating" } } + ] + }, + "certificationStatus": { + "description": "Indicates the current status of a certification: active or inactive. See also [gs1:certificationStatus](https://www.gs1.org/voc/certificationStatus).", + "oneOf": [ + { "$ref": "schema:CertificationStatusEnumeration" }, + { + "type": "array", + "items": { "$ref": "schema:CertificationStatusEnumeration" } + } + ] + }, + "datePublished": { + "description": "Date of first publication or broadcast. For example the date a [[CreativeWork]] was broadcast or a [[Certification]] was issued.", + "anyOf": [ + { "type": "string", "format": "date" }, + { "type": "string", "format": "date-time" } + ] + }, + "expires": { + "description": "Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date, or a [[Certification]] the validity has expired.", + "anyOf": [ + { "type": "string", "format": "date" }, + { "type": "string", "format": "date-time" } + ] + }, + "hasMeasurement": { + "description": "A measurement of an item, For example, the inseam of pants, the wheel size of a bicycle, the gauge of a screw, or the carbon footprint measured for certification by an authority. Usually an exact measurement, but can also be a range of measurements for adjustable products, for example belts and ski bindings.", + "oneOf": [ + { "$ref": "schema:QuantitativeValue" }, + { "type": "array", "items": { "$ref": "schema:QuantitativeValue" } } + ] + }, + "issuedBy": { + "description": "The organization issuing the item, for example a [[Permit]], [[Ticket]], or [[Certification]].", + "$ref": "schema:Organization" + }, + "logo": { + "description": "An associated logo.", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:ImageObject" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:ImageObject" } + ] + } + } + ] + }, + "validFrom": { + "description": "The date when the item becomes valid.", + "anyOf": [ + { "type": "string", "format": "date" }, + { "type": "string", "format": "date-time" } + ] + }, + "validIn": { + "description": "The geographic area where the item is valid. Applies for example to a [[Permit]], a [[Certification]], or an [[EducationalOccupationalCredential]]. ", + "$ref": "schema:AdministrativeArea" + } + } +} diff --git a/registry/schema-org/CertificationStatusEnumeration.schema.json b/registry/schema-org/CertificationStatusEnumeration.schema.json new file mode 100644 index 0000000..721f889 --- /dev/null +++ b/registry/schema-org/CertificationStatusEnumeration.schema.json @@ -0,0 +1,17 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:CertificationStatusEnumeration", + "title": "CertificationStatusEnumeration", + "description": "Enumerates the different statuses of a Certification (Active and Inactive).", + "type": "string", + "oneOf": [ + { + "description": "Specifies that a certification is active.", + "const": "CertificationActive" + }, + { + "description": "Specifies that a certification is inactive (no longer in effect).", + "const": "CertificationInactive" + } + ] +} diff --git a/registry/schema-org/Chapter.schema.json b/registry/schema-org/Chapter.schema.json new file mode 100644 index 0000000..86165f5 --- /dev/null +++ b/registry/schema-org/Chapter.schema.json @@ -0,0 +1,30 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Chapter", + "title": "Chapter", + "description": "One of the sections into which a book is divided. A chapter usually has a section number or a name.", + "type": "object", + "allOf": [ + { + "description": "The most generic kind of creative work, including books, movies, photographs, software programs, etc.", + "$ref": "schema:CreativeWork" + } + ], + "properties": { + "pageEnd": { + "description": "The page on which the work ends; for example \"138\" or \"xvi\".", + "anyOf": [{ "type": "integer" }, { "type": "string" }] + }, + "pageStart": { + "description": "The page on which the work starts; for example \"135\" or \"xiii\".", + "anyOf": [{ "type": "integer" }, { "type": "string" }] + }, + "pagination": { + "description": "Any description of pages that is not separated into pageStart and pageEnd; for example, \"1-6, 9, 55\" or \"10-12, 46-49\".", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + } + } +} diff --git a/registry/schema-org/CheckAction.schema.json b/registry/schema-org/CheckAction.schema.json new file mode 100644 index 0000000..4c6a3ed --- /dev/null +++ b/registry/schema-org/CheckAction.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:CheckAction", + "title": "CheckAction", + "description": "An agent inspects, determines, investigates, inquires, or examines an object's accuracy, quality, condition, or state.", + "type": "object", + "allOf": [ + { + "description": "The act of finding an object.\\n\\nRelated actions:\\n\\n* [[SearchAction]]: FindAction is generally lead by a SearchAction, but not necessarily.", + "$ref": "schema:FindAction" + } + ] +} diff --git a/registry/schema-org/CheckInAction.schema.json b/registry/schema-org/CheckInAction.schema.json new file mode 100644 index 0000000..498ccdb --- /dev/null +++ b/registry/schema-org/CheckInAction.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:CheckInAction", + "title": "CheckInAction", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "The act of conveying information to another person via a communication medium (instrument) such as speech, email, or telephone conversation.", + "$ref": "schema:CommunicateAction" + } + ] +} diff --git a/registry/schema-org/CheckOutAction.schema.json b/registry/schema-org/CheckOutAction.schema.json new file mode 100644 index 0000000..424e470 --- /dev/null +++ b/registry/schema-org/CheckOutAction.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:CheckOutAction", + "title": "CheckOutAction", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "The act of conveying information to another person via a communication medium (instrument) such as speech, email, or telephone conversation.", + "$ref": "schema:CommunicateAction" + } + ] +} diff --git a/registry/schema-org/CheckoutPage.schema.json b/registry/schema-org/CheckoutPage.schema.json new file mode 100644 index 0000000..54d95c7 --- /dev/null +++ b/registry/schema-org/CheckoutPage.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:CheckoutPage", + "title": "CheckoutPage", + "description": "Web page type: Checkout page.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:WebPage" + } + ] +} diff --git a/registry/schema-org/ChemicalSubstance.schema.json b/registry/schema-org/ChemicalSubstance.schema.json new file mode 100644 index 0000000..7d7fad4 --- /dev/null +++ b/registry/schema-org/ChemicalSubstance.schema.json @@ -0,0 +1,33 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:ChemicalSubstance", + "title": "ChemicalSubstance", + "description": "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)).", + "type": "object", + "allOf": [ + { + "description": "Any biological, chemical, or biochemical thing. For example: a protein; a gene; a chemical; a synthetic chemical.", + "$ref": "schema:BioChemEntity" + } + ], + "properties": { + "chemicalComposition": { + "description": "The chemical composition describes the identity and relative ratio of the chemical elements that make up the substance.", + "type": "string" + }, + "chemicalRole": { + "description": "A role played by the BioChemEntity within a chemical context.", + "oneOf": [ + { "$ref": "schema:DefinedTerm" }, + { "type": "array", "items": { "$ref": "schema:DefinedTerm" } } + ] + }, + "potentialUse": { + "description": "Intended use of the BioChemEntity by humans.", + "oneOf": [ + { "$ref": "schema:DefinedTerm" }, + { "type": "array", "items": { "$ref": "schema:DefinedTerm" } } + ] + } + } +} diff --git a/registry/schema-org/ChildCare.schema.json b/registry/schema-org/ChildCare.schema.json new file mode 100644 index 0000000..eff0c29 --- /dev/null +++ b/registry/schema-org/ChildCare.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:ChildCare", + "title": "ChildCare", + "description": "A Childcare center.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:LocalBusiness" + } + ] +} diff --git a/registry/schema-org/ChildrensEvent.schema.json b/registry/schema-org/ChildrensEvent.schema.json new file mode 100644 index 0000000..6bbd5cc --- /dev/null +++ b/registry/schema-org/ChildrensEvent.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:ChildrensEvent", + "title": "ChildrensEvent", + "description": "Event type: Children's event.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:Event" + } + ] +} diff --git a/registry/schema-org/ChooseAction.schema.json b/registry/schema-org/ChooseAction.schema.json new file mode 100644 index 0000000..1a452c4 --- /dev/null +++ b/registry/schema-org/ChooseAction.schema.json @@ -0,0 +1,39 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:ChooseAction", + "title": "ChooseAction", + "description": "The act of expressing a preference from a set of options or a large or unbounded set of choices/options.", + "type": "object", + "allOf": [ + { + "description": "The act of forming one's opinion, reaction or sentiment.", + "$ref": "schema:AssessAction" + } + ], + "properties": { + "actionOption": { + "description": "A sub property of object. The options subject to this action.", + "oneOf": [ + { "anyOf": [{ "type": "string" }, { "$ref": "schema:Thing" }] }, + { + "type": "array", + "items": { + "anyOf": [{ "type": "string" }, { "$ref": "schema:Thing" }] + } + } + ] + }, + "option": { + "description": "A sub property of object. The options subject to this action.", + "oneOf": [ + { "anyOf": [{ "type": "string" }, { "$ref": "schema:Thing" }] }, + { + "type": "array", + "items": { + "anyOf": [{ "type": "string" }, { "$ref": "schema:Thing" }] + } + } + ] + } + } +} diff --git a/registry/schema-org/Church.schema.json b/registry/schema-org/Church.schema.json new file mode 100644 index 0000000..7537756 --- /dev/null +++ b/registry/schema-org/Church.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Church", + "title": "Church", + "description": "A church.", + "type": "object", + "allOf": [ + { + "description": "Place of worship, such as a church, synagogue, or mosque.", + "$ref": "schema:PlaceOfWorship" + } + ] +} diff --git a/registry/schema-org/City.schema.json b/registry/schema-org/City.schema.json new file mode 100644 index 0000000..ea2bca1 --- /dev/null +++ b/registry/schema-org/City.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:City", + "title": "City", + "description": "A city or town.", + "type": "object", + "allOf": [ + { + "description": "A geographical region, typically under the jurisdiction of a particular government.", + "$ref": "schema:AdministrativeArea" + } + ] +} diff --git a/registry/schema-org/CityHall.schema.json b/registry/schema-org/CityHall.schema.json new file mode 100644 index 0000000..55265ba --- /dev/null +++ b/registry/schema-org/CityHall.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:CityHall", + "title": "CityHall", + "description": "A city hall.", + "type": "object", + "allOf": [ + { + "description": "A government building.", + "$ref": "schema:GovernmentBuilding" + } + ] +} diff --git a/registry/schema-org/CivicStructure.schema.json b/registry/schema-org/CivicStructure.schema.json new file mode 100644 index 0000000..7fc0e80 --- /dev/null +++ b/registry/schema-org/CivicStructure.schema.json @@ -0,0 +1,19 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:CivicStructure", + "title": "CivicStructure", + "description": "A public structure, such as a town hall or concert hall.", + "type": "object", + "allOf": [ + { + "description": "Entities that have a somewhat fixed, physical extension.", + "$ref": "schema:Place" + } + ], + "properties": { + "openingHours": { + "description": "The general opening hours for a business. Opening hours can be specified as a weekly time range, starting with days, then times per day. Multiple days can be listed with commas ',' separating each day. Day or time ranges are specified using a hyphen '-'.\\n\\n* Days are specified using the following two-letter combinations: ```Mo```, ```Tu```, ```We```, ```Th```, ```Fr```, ```Sa```, ```Su```.\\n* Times are specified using 24:00 format. For example, 3pm is specified as ```15:00```, 10am as ```10:00```. \\n* Here is an example: .\\n* If a business is open 7 days a week, then it can be specified as .", + "type": "string" + } + } +} diff --git a/registry/schema-org/Claim.schema.json b/registry/schema-org/Claim.schema.json new file mode 100644 index 0000000..652aeff --- /dev/null +++ b/registry/schema-org/Claim.schema.json @@ -0,0 +1,49 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Claim", + "title": "Claim", + "description": "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 ", + "type": "object", + "allOf": [ + { + "description": "The most generic kind of creative work, including books, movies, photographs, software programs, etc.", + "$ref": "schema:CreativeWork" + } + ], + "properties": { + "appearance": { + "description": "Indicates an occurrence of a [[Claim]] in some [[CreativeWork]].", + "oneOf": [ + { "$ref": "schema:CreativeWork" }, + { "type": "array", "items": { "$ref": "schema:CreativeWork" } } + ] + }, + "claimInterpreter": { + "description": "For a [[Claim]] interpreted from [[MediaObject]] content, the [[interpretedAsClaim]] property can be used to indicate a claim contained, implied or refined from the content of a [[MediaObject]].", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + } + } + ] + }, + "firstAppearance": { + "description": "Indicates the first known occurrence of a [[Claim]] in some [[CreativeWork]].", + "oneOf": [ + { "$ref": "schema:CreativeWork" }, + { "type": "array", "items": { "$ref": "schema:CreativeWork" } } + ] + } + } +} diff --git a/registry/schema-org/ClaimReview.schema.json b/registry/schema-org/ClaimReview.schema.json new file mode 100644 index 0000000..8f9226f --- /dev/null +++ b/registry/schema-org/ClaimReview.schema.json @@ -0,0 +1,22 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:ClaimReview", + "title": "ClaimReview", + "description": "A fact-checking review of claims made (or reported) in some creative work (referenced via itemReviewed).", + "type": "object", + "allOf": [ + { + "description": "A review of an item - for example, of a restaurant, movie, or store.", + "$ref": "schema:Review" + } + ], + "properties": { + "claimReviewed": { + "description": "A short summary of the specific claims reviewed in a ClaimReview.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + } + } +} diff --git a/registry/schema-org/Class.schema.json b/registry/schema-org/Class.schema.json new file mode 100644 index 0000000..c4fe101 --- /dev/null +++ b/registry/schema-org/Class.schema.json @@ -0,0 +1,37 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Class", + "title": "Class", + "description": "A class, also often called a 'Type'; equivalent to rdfs:Class.", + "type": "object", + "allOf": [ + { + "description": "A utility class that serves as the umbrella for a number of 'intangible' things such as quantities, structured values, etc.", + "$ref": "schema:Intangible" + } + ], + "properties": { + "supersededBy": { + "description": "Relates a term (i.e. a property, class or enumeration) to one that supersedes it.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:Class" }, + { "$ref": "schema:Enumeration" }, + { "$ref": "schema:Property" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:Class" }, + { "$ref": "schema:Enumeration" }, + { "$ref": "schema:Property" } + ] + } + } + ] + } + } +} diff --git a/registry/schema-org/Clip.schema.json b/registry/schema-org/Clip.schema.json new file mode 100644 index 0000000..4ca1391 --- /dev/null +++ b/registry/schema-org/Clip.schema.json @@ -0,0 +1,81 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Clip", + "title": "Clip", + "description": "A short TV or radio program or a segment/part of a program.", + "type": "object", + "allOf": [ + { + "description": "The most generic kind of creative work, including books, movies, photographs, software programs, etc.", + "$ref": "schema:CreativeWork" + } + ], + "properties": { + "actor": { + "description": "An actor (individual or a group), 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.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:PerformingGroup" }, + { "$ref": "schema:Person" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:PerformingGroup" }, + { "$ref": "schema:Person" } + ] + } + } + ] + }, + "actors": { + "description": "An actor, e.g. in TV, radio, movie, video games etc. Actors can be associated with individual items or with a series, episode, clip.", + "oneOf": [ + { "$ref": "schema:Person" }, + { "type": "array", "items": { "$ref": "schema:Person" } } + ] + }, + "clipNumber": { + "description": "Position of the clip within an ordered group of clips.", + "anyOf": [{ "type": "integer" }, { "type": "string" }] + }, + "director": { + "description": "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.", + "$ref": "schema:Person" + }, + "directors": { + "description": "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.", + "oneOf": [ + { "$ref": "schema:Person" }, + { "type": "array", "items": { "$ref": "schema:Person" } } + ] + }, + "endOffset": { + "description": "The end time of the clip expressed as the number of seconds from the beginning of the work.", + "anyOf": [{ "type": "number" }, { "$ref": "schema:HyperTocEntry" }] + }, + "musicBy": { + "description": "The composer of the soundtrack.", + "anyOf": [{ "$ref": "schema:MusicGroup" }, { "$ref": "schema:Person" }] + }, + "partOfEpisode": { + "description": "The episode to which this clip belongs.", + "$ref": "schema:Episode" + }, + "partOfSeason": { + "description": "The season to which this episode belongs.", + "$ref": "schema:CreativeWorkSeason" + }, + "partOfSeries": { + "description": "The series to which this episode or season belongs.", + "$ref": "schema:CreativeWorkSeries" + }, + "startOffset": { + "description": "The start time of the clip expressed as the number of seconds from the beginning of the work.", + "anyOf": [{ "type": "number" }, { "$ref": "schema:HyperTocEntry" }] + } + } +} diff --git a/registry/schema-org/ClothingStore.schema.json b/registry/schema-org/ClothingStore.schema.json new file mode 100644 index 0000000..52b7bfd --- /dev/null +++ b/registry/schema-org/ClothingStore.schema.json @@ -0,0 +1,8 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:ClothingStore", + "title": "ClothingStore", + "description": "A clothing store.", + "type": "object", + "allOf": [{ "description": "A retail good store.", "$ref": "schema:Store" }] +} diff --git a/registry/schema-org/Code.schema.json b/registry/schema-org/Code.schema.json new file mode 100644 index 0000000..b740ad0 --- /dev/null +++ b/registry/schema-org/Code.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Code", + "title": "Code", + "description": "Computer programming source code. Example: Full (compile ready) solutions, code snippet samples, scripts, templates.", + "type": "object", + "allOf": [ + { + "description": "The most generic kind of creative work, including books, movies, photographs, software programs, etc.", + "$ref": "schema:CreativeWork" + } + ] +} diff --git a/registry/schema-org/Collection.schema.json b/registry/schema-org/Collection.schema.json new file mode 100644 index 0000000..2dec5eb --- /dev/null +++ b/registry/schema-org/Collection.schema.json @@ -0,0 +1,22 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Collection", + "title": "Collection", + "description": "A collection of items, e.g. creative works or products.", + "type": "object", + "allOf": [ + { + "description": "The most generic kind of creative work, including books, movies, photographs, software programs, etc.", + "$ref": "schema:CreativeWork" + } + ], + "properties": { + "[object Object]": { + "description": "", + "oneOf": [ + { "type": "integer" }, + { "type": "array", "items": { "type": "integer" } } + ] + } + } +} diff --git a/registry/schema-org/CollectionPage.schema.json b/registry/schema-org/CollectionPage.schema.json new file mode 100644 index 0000000..b9f4a2a --- /dev/null +++ b/registry/schema-org/CollectionPage.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:CollectionPage", + "title": "CollectionPage", + "description": "Web page type: Collection page.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:WebPage" + } + ] +} diff --git a/registry/schema-org/CollegeOrUniversity.schema.json b/registry/schema-org/CollegeOrUniversity.schema.json new file mode 100644 index 0000000..34395c4 --- /dev/null +++ b/registry/schema-org/CollegeOrUniversity.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:CollegeOrUniversity", + "title": "CollegeOrUniversity", + "description": "A college, university, or other third-level educational institution.", + "type": "object", + "allOf": [ + { + "description": "An educational organization.", + "$ref": "schema:EducationalOrganization" + } + ] +} diff --git a/registry/schema-org/ComedyClub.schema.json b/registry/schema-org/ComedyClub.schema.json new file mode 100644 index 0000000..e2a2a8a --- /dev/null +++ b/registry/schema-org/ComedyClub.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:ComedyClub", + "title": "ComedyClub", + "description": "A comedy club.", + "type": "object", + "allOf": [ + { + "description": "A business providing entertainment.", + "$ref": "schema:EntertainmentBusiness" + } + ] +} diff --git a/registry/schema-org/ComedyEvent.schema.json b/registry/schema-org/ComedyEvent.schema.json new file mode 100644 index 0000000..87ae63b --- /dev/null +++ b/registry/schema-org/ComedyEvent.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:ComedyEvent", + "title": "ComedyEvent", + "description": "Event type: Comedy event.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:Event" + } + ] +} diff --git a/registry/schema-org/ComicCoverArt.schema.json b/registry/schema-org/ComicCoverArt.schema.json new file mode 100644 index 0000000..c8cab99 --- /dev/null +++ b/registry/schema-org/ComicCoverArt.schema.json @@ -0,0 +1,17 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:ComicCoverArt", + "title": "ComicCoverArt", + "description": "The artwork on the cover of a comic.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:ComicStory" + }, + { + "description": "The artwork on the outer surface of a CreativeWork.", + "$ref": "schema:CoverArt" + } + ] +} diff --git a/registry/schema-org/ComicIssue.schema.json b/registry/schema-org/ComicIssue.schema.json new file mode 100644 index 0000000..0247a53 --- /dev/null +++ b/registry/schema-org/ComicIssue.schema.json @@ -0,0 +1,42 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:ComicIssue", + "title": "ComicIssue", + "description": "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).", + "type": "object", + "allOf": [ + { + "description": "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](https://blog-schema.org/2014/09/02/schema-org-support-for-bibliographic-relationships-and-periodicals/).", + "$ref": "schema:PublicationIssue" + } + ], + "properties": { + "artist": { + "description": "The primary artist for a work\n \tin a medium other than pencils or digital line art--for example, if the\n \tprimary artwork is done in watercolors or digital paints.", + "$ref": "schema:Person" + }, + "colorist": { + "description": "The individual who adds color to inked drawings.", + "$ref": "schema:Person" + }, + "inker": { + "description": "The individual who traces over the pencil drawings in ink after pencils are complete.", + "$ref": "schema:Person" + }, + "letterer": { + "description": "The individual who adds lettering, including speech balloons and sound effects, to artwork.", + "$ref": "schema:Person" + }, + "penciler": { + "description": "The individual who draws the primary narrative artwork.", + "$ref": "schema:Person" + }, + "variantCover": { + "description": "A description of the variant cover\n \tfor the issue, if the issue is a variant printing. For example, \"Bryan Hitch\n \tVariant Cover\" or \"2nd Printing Variant\".", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + } + } +} diff --git a/registry/schema-org/ComicSeries.schema.json b/registry/schema-org/ComicSeries.schema.json new file mode 100644 index 0000000..45a52a4 --- /dev/null +++ b/registry/schema-org/ComicSeries.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:ComicSeries", + "title": "ComicSeries", + "description": "A sequential publication of comic stories under a\n \tunifying title, for example \"The Amazing Spider-Man\" or \"Groo the\n \tWanderer\".", + "type": "object", + "allOf": [ + { + "description": "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).", + "$ref": "schema:Periodical" + } + ] +} diff --git a/registry/schema-org/ComicStory.schema.json b/registry/schema-org/ComicStory.schema.json new file mode 100644 index 0000000..fde4529 --- /dev/null +++ b/registry/schema-org/ComicStory.schema.json @@ -0,0 +1,35 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:ComicStory", + "title": "ComicStory", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "The most generic kind of creative work, including books, movies, photographs, software programs, etc.", + "$ref": "schema:CreativeWork" + } + ], + "properties": { + "artist": { + "description": "The primary artist for a work\n \tin a medium other than pencils or digital line art--for example, if the\n \tprimary artwork is done in watercolors or digital paints.", + "$ref": "schema:Person" + }, + "colorist": { + "description": "The individual who adds color to inked drawings.", + "$ref": "schema:Person" + }, + "inker": { + "description": "The individual who traces over the pencil drawings in ink after pencils are complete.", + "$ref": "schema:Person" + }, + "letterer": { + "description": "The individual who adds lettering, including speech balloons and sound effects, to artwork.", + "$ref": "schema:Person" + }, + "penciler": { + "description": "The individual who draws the primary narrative artwork.", + "$ref": "schema:Person" + } + } +} diff --git a/registry/schema-org/Comment.schema.json b/registry/schema-org/Comment.schema.json new file mode 100644 index 0000000..1035c12 --- /dev/null +++ b/registry/schema-org/Comment.schema.json @@ -0,0 +1,34 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Comment", + "title": "Comment", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "The most generic kind of creative work, including books, movies, photographs, software programs, etc.", + "$ref": "schema:CreativeWork" + } + ], + "properties": { + "downvoteCount": { + "description": "The number of downvotes this question, answer or comment has received from the community.", + "type": "integer" + }, + "parentItem": { + "description": "The parent of a question, answer or item in general. Typically used for Q/A discussion threads e.g. a chain of comments with the first comment being an [[Article]] or other [[CreativeWork]]. See also [[comment]] which points from something to a comment about it.", + "anyOf": [{ "$ref": "schema:Comment" }, { "$ref": "schema:CreativeWork" }] + }, + "sharedContent": { + "description": "A CreativeWork such as an image, video, or audio clip shared as part of this posting.", + "oneOf": [ + { "$ref": "schema:CreativeWork" }, + { "type": "array", "items": { "$ref": "schema:CreativeWork" } } + ] + }, + "upvoteCount": { + "description": "The number of upvotes this question, answer or comment has received from the community.", + "type": "integer" + } + } +} diff --git a/registry/schema-org/CommentAction.schema.json b/registry/schema-org/CommentAction.schema.json new file mode 100644 index 0000000..d1ca79a --- /dev/null +++ b/registry/schema-org/CommentAction.schema.json @@ -0,0 +1,22 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:CommentAction", + "title": "CommentAction", + "description": "The act of generating a comment about a subject.", + "type": "object", + "allOf": [ + { + "description": "The act of conveying information to another person via a communication medium (instrument) such as speech, email, or telephone conversation.", + "$ref": "schema:CommunicateAction" + } + ], + "properties": { + "resultComment": { + "description": "A sub property of result. The Comment created or sent as a result of this action.", + "oneOf": [ + { "$ref": "schema:Comment" }, + { "type": "array", "items": { "$ref": "schema:Comment" } } + ] + } + } +} diff --git a/registry/schema-org/CommunicateAction.schema.json b/registry/schema-org/CommunicateAction.schema.json new file mode 100644 index 0000000..4aab068 --- /dev/null +++ b/registry/schema-org/CommunicateAction.schema.json @@ -0,0 +1,54 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:CommunicateAction", + "title": "CommunicateAction", + "description": "The act of conveying information to another person via a communication medium (instrument) such as speech, email, or telephone conversation.", + "type": "object", + "allOf": [ + { + "description": "The act of interacting with another person or organization.", + "$ref": "schema:InteractAction" + } + ], + "properties": { + "about": { + "description": "The subject matter of the content.", + "$ref": "schema:Thing" + }, + "inLanguage": { + "description": "The language of the content or performance or used in an action. Please use one of the language codes from the [IETF BCP 47 standard](http://tools.ietf.org/html/bcp47). See also [[availableLanguage]].", + "anyOf": [{ "type": "string" }, { "$ref": "schema:Language" }] + }, + "language": { + "description": "A sub property of instrument. The language used on this action.", + "oneOf": [ + { "$ref": "schema:Language" }, + { "type": "array", "items": { "$ref": "schema:Language" } } + ] + }, + "recipient": { + "description": "A sub property of participant. The participant who is at the receiving end of the action.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:Audience" }, + { "$ref": "schema:ContactPoint" }, + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:Audience" }, + { "$ref": "schema:ContactPoint" }, + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + } + } + ] + } + } +} diff --git a/registry/schema-org/CompleteDataFeed.schema.json b/registry/schema-org/CompleteDataFeed.schema.json new file mode 100644 index 0000000..d307fa9 --- /dev/null +++ b/registry/schema-org/CompleteDataFeed.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:CompleteDataFeed", + "title": "CompleteDataFeed", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "A single feed providing structured information about one or more entities or topics.", + "$ref": "schema:DataFeed" + } + ] +} diff --git a/registry/schema-org/CompoundPriceSpecification.schema.json b/registry/schema-org/CompoundPriceSpecification.schema.json new file mode 100644 index 0000000..19c45a2 --- /dev/null +++ b/registry/schema-org/CompoundPriceSpecification.schema.json @@ -0,0 +1,45 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:CompoundPriceSpecification", + "title": "CompoundPriceSpecification", + "description": "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\").", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:PriceSpecification" + } + ], + "properties": { + "priceComponent": { + "description": "This property links to all [[UnitPriceSpecification]] nodes that apply in parallel for the [[CompoundPriceSpecification]] node.", + "oneOf": [ + { "$ref": "schema:UnitPriceSpecification" }, + { + "type": "array", + "items": { "$ref": "schema:UnitPriceSpecification" } + } + ] + }, + "priceType": { + "description": "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.", + "oneOf": [ + { + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:PriceTypeEnumeration" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:PriceTypeEnumeration" } + ] + } + } + ] + } + } +} diff --git a/registry/schema-org/ComputerLanguage.schema.json b/registry/schema-org/ComputerLanguage.schema.json new file mode 100644 index 0000000..7810572 --- /dev/null +++ b/registry/schema-org/ComputerLanguage.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:ComputerLanguage", + "title": "ComputerLanguage", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "A utility class that serves as the umbrella for a number of 'intangible' things such as quantities, structured values, etc.", + "$ref": "schema:Intangible" + } + ] +} diff --git a/registry/schema-org/ComputerStore.schema.json b/registry/schema-org/ComputerStore.schema.json new file mode 100644 index 0000000..5150216 --- /dev/null +++ b/registry/schema-org/ComputerStore.schema.json @@ -0,0 +1,8 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:ComputerStore", + "title": "ComputerStore", + "description": "A computer store.", + "type": "object", + "allOf": [{ "description": "A retail good store.", "$ref": "schema:Store" }] +} diff --git a/registry/schema-org/ConfirmAction.schema.json b/registry/schema-org/ConfirmAction.schema.json new file mode 100644 index 0000000..a6bfdf9 --- /dev/null +++ b/registry/schema-org/ConfirmAction.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:ConfirmAction", + "title": "ConfirmAction", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "The act of notifying someone of information pertinent to them, with no expectation of a response.", + "$ref": "schema:InformAction" + } + ] +} diff --git a/registry/schema-org/Consortium.schema.json b/registry/schema-org/Consortium.schema.json new file mode 100644 index 0000000..b0b1e88 --- /dev/null +++ b/registry/schema-org/Consortium.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Consortium", + "title": "Consortium", + "description": "A Consortium is a membership [[Organization]] whose members are typically Organizations.", + "type": "object", + "allOf": [ + { + "description": "An organization such as a school, NGO, corporation, club, etc.", + "$ref": "schema:Organization" + } + ] +} diff --git a/registry/schema-org/ConstraintNode.schema.json b/registry/schema-org/ConstraintNode.schema.json new file mode 100644 index 0000000..fbac259 --- /dev/null +++ b/registry/schema-org/ConstraintNode.schema.json @@ -0,0 +1,42 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:ConstraintNode", + "title": "ConstraintNode", + "description": "The ConstraintNode type is provided to support usecases in which a node in a structured data graph is described with properties which appear to describe a single entity, but are being used in a situation where they serve a more abstract purpose. A [[ConstraintNode]] can be described using [[constraintProperty]] and [[numConstraints]]. These constraint properties can serve a\n variety of purposes, and their values may sometimes be understood to indicate sets of possible values rather than single, exact and specific values.", + "type": "object", + "allOf": [ + { + "description": "A utility class that serves as the umbrella for a number of 'intangible' things such as quantities, structured values, etc.", + "$ref": "schema:Intangible" + } + ], + "properties": { + "constraintProperty": { + "description": "Indicates a property used as a constraint. For example, in the definition of a [[StatisticalVariable]]. The value is a property, either from within Schema.org or from other compatible (e.g. RDF) systems such as DataCommons.org or Wikidata.org. ", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:Property" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:Property" } + ] + } + } + ] + }, + "numConstraints": { + "description": "Indicates the number of constraints property values defined for a particular [[ConstraintNode]] such as [[StatisticalVariable]]. This helps applications understand if they have access to a sufficiently complete description of a [[StatisticalVariable]] or other construct that is defined using properties on template-style nodes.", + "oneOf": [ + { "type": "integer" }, + { "type": "array", "items": { "type": "integer" } } + ] + } + } +} diff --git a/registry/schema-org/ConsumeAction.schema.json b/registry/schema-org/ConsumeAction.schema.json new file mode 100644 index 0000000..9503f3b --- /dev/null +++ b/registry/schema-org/ConsumeAction.schema.json @@ -0,0 +1,32 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:ConsumeAction", + "title": "ConsumeAction", + "description": "The act of ingesting information/resources/food.", + "type": "object", + "allOf": [ + { + "description": "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).", + "$ref": "schema:Action" + } + ], + "properties": { + "actionAccessibilityRequirement": { + "description": "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.", + "oneOf": [ + { "$ref": "schema:ActionAccessSpecification" }, + { + "type": "array", + "items": { "$ref": "schema:ActionAccessSpecification" } + } + ] + }, + "expectsAcceptanceOf": { + "description": "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.", + "oneOf": [ + { "$ref": "schema:Offer" }, + { "type": "array", "items": { "$ref": "schema:Offer" } } + ] + } + } +} diff --git a/registry/schema-org/ContactPage.schema.json b/registry/schema-org/ContactPage.schema.json new file mode 100644 index 0000000..19b5622 --- /dev/null +++ b/registry/schema-org/ContactPage.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:ContactPage", + "title": "ContactPage", + "description": "Web page type: Contact page.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:WebPage" + } + ] +} diff --git a/registry/schema-org/ContactPoint.schema.json b/registry/schema-org/ContactPoint.schema.json new file mode 100644 index 0000000..031b5b2 --- /dev/null +++ b/registry/schema-org/ContactPoint.schema.json @@ -0,0 +1,75 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:ContactPoint", + "title": "ContactPoint", + "description": "A contact point—for example, a Customer Complaints department.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:StructuredValue" + } + ], + "properties": { + "areaServed": { + "description": "The geographic area where a service or offered item is provided.", + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:AdministrativeArea" }, + { "$ref": "schema:GeoShape" }, + { "$ref": "schema:Place" } + ] + }, + "availableLanguage": { + "description": "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]].", + "oneOf": [ + { "anyOf": [{ "type": "string" }, { "$ref": "schema:Language" }] }, + { + "type": "array", + "items": { + "anyOf": [{ "type": "string" }, { "$ref": "schema:Language" }] + } + } + ] + }, + "contactOption": { + "description": "An option available on this contact point (e.g. a toll-free number or support for hearing-impaired callers).", + "oneOf": [ + { "$ref": "schema:ContactPointOption" }, + { "type": "array", "items": { "$ref": "schema:ContactPointOption" } } + ] + }, + "contactType": { + "description": "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.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "email": { + "description": "Email address.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "faxNumber": { "description": "The fax number.", "type": "string" }, + "hoursAvailable": { + "description": "The hours during which this service or contact is available.", + "$ref": "schema:OpeningHoursSpecification" + }, + "productSupported": { + "description": "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\").", + "anyOf": [{ "type": "string" }, { "$ref": "schema:Product" }] + }, + "serviceArea": { + "description": "The geographic area where the service is provided.", + "anyOf": [ + { "$ref": "schema:AdministrativeArea" }, + { "$ref": "schema:GeoShape" }, + { "$ref": "schema:Place" } + ] + }, + "telephone": { "description": "The telephone number.", "type": "string" } + } +} diff --git a/registry/schema-org/ContactPointOption.schema.json b/registry/schema-org/ContactPointOption.schema.json new file mode 100644 index 0000000..3261f9b --- /dev/null +++ b/registry/schema-org/ContactPointOption.schema.json @@ -0,0 +1,17 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:ContactPointOption", + "title": "ContactPointOption", + "description": "Enumerated options related to a ContactPoint.", + "type": "string", + "oneOf": [ + { + "description": "Uses devices to support users with hearing impairments.", + "const": "HearingImpairedSupported" + }, + { + "description": "The associated telephone number is toll free.", + "const": "TollFree" + } + ] +} diff --git a/registry/schema-org/Continent.schema.json b/registry/schema-org/Continent.schema.json new file mode 100644 index 0000000..2e5b9d7 --- /dev/null +++ b/registry/schema-org/Continent.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Continent", + "title": "Continent", + "description": "One of the continents (for example, Europe or Africa).", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:Landform" + } + ] +} diff --git a/registry/schema-org/ControlAction.schema.json b/registry/schema-org/ControlAction.schema.json new file mode 100644 index 0000000..7ce1816 --- /dev/null +++ b/registry/schema-org/ControlAction.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:ControlAction", + "title": "ControlAction", + "description": "An agent controls a device or application.", + "type": "object", + "allOf": [ + { + "description": "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).", + "$ref": "schema:Action" + } + ] +} diff --git a/registry/schema-org/ConvenienceStore.schema.json b/registry/schema-org/ConvenienceStore.schema.json new file mode 100644 index 0000000..3c3c9d2 --- /dev/null +++ b/registry/schema-org/ConvenienceStore.schema.json @@ -0,0 +1,8 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:ConvenienceStore", + "title": "ConvenienceStore", + "description": "A convenience store.", + "type": "object", + "allOf": [{ "description": "A retail good store.", "$ref": "schema:Store" }] +} diff --git a/registry/schema-org/Conversation.schema.json b/registry/schema-org/Conversation.schema.json new file mode 100644 index 0000000..c1c951d --- /dev/null +++ b/registry/schema-org/Conversation.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Conversation", + "title": "Conversation", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "The most generic kind of creative work, including books, movies, photographs, software programs, etc.", + "$ref": "schema:CreativeWork" + } + ] +} diff --git a/registry/schema-org/CookAction.schema.json b/registry/schema-org/CookAction.schema.json new file mode 100644 index 0000000..6ea89d8 --- /dev/null +++ b/registry/schema-org/CookAction.schema.json @@ -0,0 +1,49 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:CookAction", + "title": "CookAction", + "description": "The act of producing/preparing food.", + "type": "object", + "allOf": [ + { + "description": "The act of deliberately creating/producing/generating/building a result out of the agent.", + "$ref": "schema:CreateAction" + } + ], + "properties": { + "foodEstablishment": { + "description": "A sub property of location. The specific food establishment where the action occurred.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:FoodEstablishment" }, + { "$ref": "schema:Place" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:FoodEstablishment" }, + { "$ref": "schema:Place" } + ] + } + } + ] + }, + "foodEvent": { + "description": "A sub property of location. The specific food event where the action occurred.", + "oneOf": [ + { "$ref": "schema:FoodEvent" }, + { "type": "array", "items": { "$ref": "schema:FoodEvent" } } + ] + }, + "recipe": { + "description": "A sub property of instrument. The recipe/instructions used to perform the action.", + "oneOf": [ + { "$ref": "schema:Recipe" }, + { "type": "array", "items": { "$ref": "schema:Recipe" } } + ] + } + } +} diff --git a/registry/schema-org/Cooperative.schema.json b/registry/schema-org/Cooperative.schema.json new file mode 100644 index 0000000..7061677 --- /dev/null +++ b/registry/schema-org/Cooperative.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Cooperative", + "title": "Cooperative", + "description": "An organization that is a joint project of multiple organizations or persons.", + "type": "object", + "allOf": [ + { + "description": "An organization such as a school, NGO, corporation, club, etc.", + "$ref": "schema:Organization" + } + ] +} diff --git a/registry/schema-org/Corporation.schema.json b/registry/schema-org/Corporation.schema.json new file mode 100644 index 0000000..c737e02 --- /dev/null +++ b/registry/schema-org/Corporation.schema.json @@ -0,0 +1,19 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Corporation", + "title": "Corporation", + "description": "Organization: A business corporation.", + "type": "object", + "allOf": [ + { + "description": "An organization such as a school, NGO, corporation, club, etc.", + "$ref": "schema:Organization" + } + ], + "properties": { + "tickerSymbol": { + "description": "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.", + "type": "string" + } + } +} diff --git a/registry/schema-org/CorrectionComment.schema.json b/registry/schema-org/CorrectionComment.schema.json new file mode 100644 index 0000000..55118bd --- /dev/null +++ b/registry/schema-org/CorrectionComment.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:CorrectionComment", + "title": "CorrectionComment", + "description": "A [[comment]] that corrects [[CreativeWork]].", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:Comment" + } + ] +} diff --git a/registry/schema-org/Country.schema.json b/registry/schema-org/Country.schema.json new file mode 100644 index 0000000..3c8e1da --- /dev/null +++ b/registry/schema-org/Country.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Country", + "title": "Country", + "description": "A country.", + "type": "object", + "allOf": [ + { + "description": "A geographical region, typically under the jurisdiction of a particular government.", + "$ref": "schema:AdministrativeArea" + } + ] +} diff --git a/registry/schema-org/Course.schema.json b/registry/schema-org/Course.schema.json new file mode 100644 index 0000000..f6b6d04 --- /dev/null +++ b/registry/schema-org/Course.schema.json @@ -0,0 +1,135 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Course", + "title": "Course", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "The most generic kind of creative work, including books, movies, photographs, software programs, etc.", + "$ref": "schema:CreativeWork" + }, + { + "description": "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.", + "$ref": "schema:LearningResource" + } + ], + "properties": { + "availableLanguage": { + "description": "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]].", + "oneOf": [ + { "anyOf": [{ "type": "string" }, { "$ref": "schema:Language" }] }, + { + "type": "array", + "items": { + "anyOf": [{ "type": "string" }, { "$ref": "schema:Language" }] + } + } + ] + }, + "courseCode": { + "description": "The identifier for the [[Course]] used by the course [[provider]] (e.g. CS101 or 6.001).", + "type": "string" + }, + "coursePrerequisites": { + "description": "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]].", + "oneOf": [ + { + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:AlignmentObject" }, + { "$ref": "schema:Course" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:AlignmentObject" }, + { "$ref": "schema:Course" } + ] + } + } + ] + }, + "educationalCredentialAwarded": { + "description": "A description of the qualification, award, certificate, diploma or other educational credential awarded as a consequence of successful completion of this course or program.", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:EducationalOccupationalCredential" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:EducationalOccupationalCredential" } + ] + } + } + ] + }, + "financialAidEligible": { + "description": "A financial aid type or program which students may use to pay for tuition or fees associated with the program.", + "oneOf": [ + { "anyOf": [{ "type": "string" }, { "$ref": "schema:DefinedTerm" }] }, + { + "type": "array", + "items": { + "anyOf": [{ "type": "string" }, { "$ref": "schema:DefinedTerm" }] + } + } + ] + }, + "hasCourseInstance": { + "description": "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.", + "oneOf": [ + { "$ref": "schema:CourseInstance" }, + { "type": "array", "items": { "$ref": "schema:CourseInstance" } } + ] + }, + "numberOfCredits": { + "description": "The number of credits or units awarded by a Course or required to complete an EducationalOccupationalProgram.", + "anyOf": [{ "type": "integer" }, { "$ref": "schema:StructuredValue" }] + }, + "occupationalCredentialAwarded": { + "description": "A description of the qualification, award, certificate, diploma or other occupational credential awarded as a consequence of successful completion of this course or program.", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:EducationalOccupationalCredential" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:EducationalOccupationalCredential" } + ] + } + } + ] + }, + "syllabusSections": { + "description": "Indicates (typically several) Syllabus entities that lay out what each section of the overall course will cover.", + "oneOf": [ + { "$ref": "schema:Syllabus" }, + { "type": "array", "items": { "$ref": "schema:Syllabus" } } + ] + }, + "totalHistoricalEnrollment": { + "description": "The total number of students that have enrolled in the history of the course.", + "type": "integer" + } + } +} diff --git a/registry/schema-org/CourseInstance.schema.json b/registry/schema-org/CourseInstance.schema.json new file mode 100644 index 0000000..4c08109 --- /dev/null +++ b/registry/schema-org/CourseInstance.schema.json @@ -0,0 +1,37 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:CourseInstance", + "title": "CourseInstance", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:Event" + } + ], + "properties": { + "courseMode": { + "description": "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).", + "anyOf": [{ "type": "string", "format": "uri" }, { "type": "string" }] + }, + "courseSchedule": { + "description": "Represents the length and pace of a course, expressed as a [[Schedule]].", + "oneOf": [ + { "$ref": "schema:Schedule" }, + { "type": "array", "items": { "$ref": "schema:Schedule" } } + ] + }, + "courseWorkload": { + "description": "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\".", + "type": "string" + }, + "instructor": { + "description": "A person assigned to instruct or provide instructional assistance for the [[CourseInstance]].", + "oneOf": [ + { "$ref": "schema:Person" }, + { "type": "array", "items": { "$ref": "schema:Person" } } + ] + } + } +} diff --git a/registry/schema-org/Courthouse.schema.json b/registry/schema-org/Courthouse.schema.json new file mode 100644 index 0000000..33cb270 --- /dev/null +++ b/registry/schema-org/Courthouse.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Courthouse", + "title": "Courthouse", + "description": "A courthouse.", + "type": "object", + "allOf": [ + { + "description": "A government building.", + "$ref": "schema:GovernmentBuilding" + } + ] +} diff --git a/registry/schema-org/CoverArt.schema.json b/registry/schema-org/CoverArt.schema.json new file mode 100644 index 0000000..3d19347 --- /dev/null +++ b/registry/schema-org/CoverArt.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:CoverArt", + "title": "CoverArt", + "description": "The artwork on the outer surface of a CreativeWork.", + "type": "object", + "allOf": [ + { + "description": "A work of art that is primarily visual in character.", + "$ref": "schema:VisualArtwork" + } + ] +} diff --git a/registry/schema-org/CovidTestingFacility.schema.json b/registry/schema-org/CovidTestingFacility.schema.json new file mode 100644 index 0000000..b9cf128 --- /dev/null +++ b/registry/schema-org/CovidTestingFacility.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:CovidTestingFacility", + "title": "CovidTestingFacility", + "description": "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 ", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:MedicalClinic" + } + ] +} diff --git a/registry/schema-org/CreateAction.schema.json b/registry/schema-org/CreateAction.schema.json new file mode 100644 index 0000000..5d82a57 --- /dev/null +++ b/registry/schema-org/CreateAction.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:CreateAction", + "title": "CreateAction", + "description": "The act of deliberately creating/producing/generating/building a result out of the agent.", + "type": "object", + "allOf": [ + { + "description": "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).", + "$ref": "schema:Action" + } + ] +} diff --git a/registry/schema-org/CreativeWork.schema.json b/registry/schema-org/CreativeWork.schema.json new file mode 100644 index 0000000..6723e00 --- /dev/null +++ b/registry/schema-org/CreativeWork.schema.json @@ -0,0 +1,966 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:CreativeWork", + "title": "CreativeWork", + "description": "The most generic kind of creative work, including books, movies, photographs, software programs, etc.", + "type": "object", + "allOf": [ + { "description": "The most generic type of item.", "$ref": "schema:Thing" } + ], + "properties": { + "[object Object]": { + "description": "", + "oneOf": [ + { + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:QuantitativeValue" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:QuantitativeValue" } + ] + } + } + ] + }, + "about": { + "description": "The subject matter of the content.", + "$ref": "schema:Thing" + }, + "abstract": { + "description": "An abstract is a short description that summarizes a [[CreativeWork]].", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "accessMode": { + "description": "The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "accessModeSufficient": { + "description": "A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).", + "oneOf": [ + { "$ref": "schema:ItemList" }, + { "type": "array", "items": { "$ref": "schema:ItemList" } } + ] + }, + "accessibilityAPI": { + "description": "Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "accessibilityControl": { + "description": "Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "accessibilityFeature": { + "description": "Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "accessibilityHazard": { + "description": "A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "accessibilitySummary": { + "description": "A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as \"short descriptions are present but long descriptions will be needed for non-visual users\" or \"short descriptions are present and no long descriptions are needed\".", + "type": "string" + }, + "accountablePerson": { + "description": "Specifies the Person that is legally accountable for the CreativeWork.", + "$ref": "schema:Person" + }, + "acquireLicensePage": { + "description": "Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:CreativeWork" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:CreativeWork" } + ] + } + } + ] + }, + "aggregateRating": { + "description": "The overall rating, based on a collection of reviews or ratings, of the item.", + "$ref": "schema:AggregateRating" + }, + "alternativeHeadline": { + "description": "A secondary title of the CreativeWork.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "archivedAt": { + "description": "Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:WebPage" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:WebPage" } + ] + } + } + ] + }, + "assesses": { + "description": "The item being described is intended to assess the competency or learning outcome defined by the referenced term.", + "anyOf": [{ "type": "string" }, { "$ref": "schema:DefinedTerm" }] + }, + "associatedMedia": { + "description": "A media object that encodes this CreativeWork. This property is a synonym for encoding.", + "$ref": "schema:MediaObject" + }, + "audience": { + "description": "An intended audience, i.e. a group for whom something was created.", + "$ref": "schema:Audience" + }, + "audio": { + "description": "An embedded audio object.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:AudioObject" }, + { "$ref": "schema:Clip" }, + { "$ref": "schema:MusicRecording" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:AudioObject" }, + { "$ref": "schema:Clip" }, + { "$ref": "schema:MusicRecording" } + ] + } + } + ] + }, + "author": { + "description": "The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.", + "anyOf": [{ "$ref": "schema:Organization" }, { "$ref": "schema:Person" }] + }, + "award": { + "description": "An award won by or for this item.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "awards": { + "description": "Awards won by or for this item.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "character": { + "description": "Fictional person connected with a creative work.", + "oneOf": [ + { "$ref": "schema:Person" }, + { "type": "array", "items": { "$ref": "schema:Person" } } + ] + }, + "citation": { + "description": "A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.", + "oneOf": [ + { "anyOf": [{ "type": "string" }, { "$ref": "schema:CreativeWork" }] }, + { + "type": "array", + "items": { + "anyOf": [{ "type": "string" }, { "$ref": "schema:CreativeWork" }] + } + } + ] + }, + "comment": { + "description": "Comments, typically from users.", + "oneOf": [ + { "$ref": "schema:Comment" }, + { "type": "array", "items": { "$ref": "schema:Comment" } } + ] + }, + "commentCount": { + "description": "The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.", + "type": "integer" + }, + "conditionsOfAccess": { + "description": "Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language.\\n\\nFor example \"Available by appointment from the Reading Room\" or \"Accessible only from logged-in accounts \". ", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "contentLocation": { + "description": "The location depicted or described in the content. For example, the location in a photograph or painting.", + "$ref": "schema:Place" + }, + "contentRating": { + "description": "Official rating of a piece of content—for example, 'MPAA PG-13'.", + "oneOf": [ + { "anyOf": [{ "type": "string" }, { "$ref": "schema:Rating" }] }, + { + "type": "array", + "items": { + "anyOf": [{ "type": "string" }, { "$ref": "schema:Rating" }] + } + } + ] + }, + "contentReferenceTime": { + "description": "The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.", + "type": "string", + "format": "date-time" + }, + "contributor": { + "description": "A secondary contributor to the CreativeWork or Event.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + } + } + ] + }, + "copyrightHolder": { + "description": "The party holding the legal copyright to the CreativeWork.", + "anyOf": [{ "$ref": "schema:Organization" }, { "$ref": "schema:Person" }] + }, + "copyrightNotice": { + "description": "Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "copyrightYear": { + "description": "The year during which the claimed copyright for the CreativeWork was first asserted.", + "type": "number" + }, + "correction": { + "description": "Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:CorrectionComment" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:CorrectionComment" } + ] + } + } + ] + }, + "countryOfOrigin": { + "description": "The country of origin of something, including products as well as creative works such as movie and TV content.\n\nIn the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable.\n\nIn the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.", + "$ref": "schema:Country" + }, + "creativeWorkStatus": { + "description": "The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.", + "anyOf": [{ "type": "string" }, { "$ref": "schema:DefinedTerm" }] + }, + "creator": { + "description": "The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.", + "anyOf": [{ "$ref": "schema:Organization" }, { "$ref": "schema:Person" }] + }, + "creditText": { + "description": "Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "dateCreated": { + "description": "The date on which the CreativeWork was created or the item was added to a DataFeed.", + "anyOf": [ + { "type": "string", "format": "date" }, + { "type": "string", "format": "date-time" } + ] + }, + "dateModified": { + "description": "The date on which the CreativeWork was most recently modified or when the item's entry was modified within a DataFeed.", + "anyOf": [ + { "type": "string", "format": "date" }, + { "type": "string", "format": "date-time" } + ] + }, + "datePublished": { + "description": "Date of first publication or broadcast. For example the date a [[CreativeWork]] was broadcast or a [[Certification]] was issued.", + "anyOf": [ + { "type": "string", "format": "date" }, + { "type": "string", "format": "date-time" } + ] + }, + "digitalSourceType": { + "description": "Indicates an IPTCDigitalSourceEnumeration code indicating the nature of the digital source(s) for some [[CreativeWork]].", + "oneOf": [ + { "$ref": "schema:IPTCDigitalSourceEnumeration" }, + { + "type": "array", + "items": { "$ref": "schema:IPTCDigitalSourceEnumeration" } + } + ] + }, + "discussionUrl": { + "description": "A link to the page containing the comments of the CreativeWork.", + "oneOf": [ + { "type": "string", "format": "uri" }, + { "type": "array", "items": { "type": "string", "format": "uri" } } + ] + }, + "editEIDR": { + "description": "An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television.\n\nFor example, the motion picture known as \"Ghostbusters\" whose [[titleEIDR]] is \"10.5240/7EC7-228A-510A-053E-CBB8-J\" has several edits, e.g. \"10.5240/1F2A-E1C5-680A-14C6-E76B-I\" and \"10.5240/8A35-3BEE-6497-5D12-9E4F-3\".\n\nSince schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description.\n", + "oneOf": [ + { + "anyOf": [{ "type": "string", "format": "uri" }, { "type": "string" }] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" } + ] + } + } + ] + }, + "editor": { + "description": "Specifies the Person who edited the CreativeWork.", + "$ref": "schema:Person" + }, + "educationalAlignment": { + "description": "An alignment to an established educational framework.\n\nThis property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.", + "oneOf": [ + { "$ref": "schema:AlignmentObject" }, + { "type": "array", "items": { "$ref": "schema:AlignmentObject" } } + ] + }, + "educationalLevel": { + "description": "The level in terms of progression through an educational or training context. Examples of educational levels include 'beginner', 'intermediate' or 'advanced', and formal sets of level indicators.", + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:DefinedTerm" } + ] + }, + "educationalUse": { + "description": "The purpose of a work in the context of education; for example, 'assignment', 'group work'.", + "anyOf": [{ "type": "string" }, { "$ref": "schema:DefinedTerm" }] + }, + "encoding": { + "description": "A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.", + "oneOf": [ + { "$ref": "schema:MediaObject" }, + { "type": "array", "items": { "$ref": "schema:MediaObject" } } + ] + }, + "encodingFormat": { + "description": "Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc.\n\nIn cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information.\n\nUnregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.", + "anyOf": [{ "type": "string", "format": "uri" }, { "type": "string" }] + }, + "encodings": { + "description": "A media object that encodes this CreativeWork.", + "oneOf": [ + { "$ref": "schema:MediaObject" }, + { "type": "array", "items": { "$ref": "schema:MediaObject" } } + ] + }, + "exampleOfWork": { + "description": "A creative work that this work is an example/instance/realization/derivation of.", + "oneOf": [ + { "$ref": "schema:CreativeWork" }, + { "type": "array", "items": { "$ref": "schema:CreativeWork" } } + ] + }, + "expires": { + "description": "Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date, or a [[Certification]] the validity has expired.", + "anyOf": [ + { "type": "string", "format": "date" }, + { "type": "string", "format": "date-time" } + ] + }, + "fileFormat": { + "description": "Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, 'encoding' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.", + "anyOf": [{ "type": "string", "format": "uri" }, { "type": "string" }] + }, + "funder": { + "description": "A person or organization that supports (sponsors) something through some kind of financial contribution.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + } + } + ] + }, + "funding": { + "description": "A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].", + "oneOf": [ + { "$ref": "schema:Grant" }, + { "type": "array", "items": { "$ref": "schema:Grant" } } + ] + }, + "genre": { + "description": "Genre of the creative work, broadcast channel or group.", + "anyOf": [{ "type": "string", "format": "uri" }, { "type": "string" }] + }, + "hasPart": { + "description": "Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).", + "oneOf": [ + { "$ref": "schema:CreativeWork" }, + { "type": "array", "items": { "$ref": "schema:CreativeWork" } } + ] + }, + "headline": { "description": "Headline of the article.", "type": "string" }, + "inLanguage": { + "description": "The language of the content or performance or used in an action. Please use one of the language codes from the [IETF BCP 47 standard](http://tools.ietf.org/html/bcp47). See also [[availableLanguage]].", + "anyOf": [{ "type": "string" }, { "$ref": "schema:Language" }] + }, + "interactionStatistic": { + "description": "The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.", + "$ref": "schema:InteractionCounter" + }, + "interactivityType": { + "description": "The predominant mode of learning supported by the learning resource. Acceptable values are 'active', 'expositive', or 'mixed'.", + "type": "string" + }, + "interpretedAsClaim": { + "description": "Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].", + "oneOf": [ + { "$ref": "schema:Claim" }, + { "type": "array", "items": { "$ref": "schema:Claim" } } + ] + }, + "isAccessibleForFree": { + "description": "A flag to signal that the item, event, or place is accessible for free.", + "type": "boolean" + }, + "isBasedOn": { + "description": "A resource from which this work is derived or from which it is a modification or adaptation.", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:CreativeWork" }, + { "$ref": "schema:Product" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:CreativeWork" }, + { "$ref": "schema:Product" } + ] + } + } + ] + }, + "isBasedOnUrl": { + "description": "A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:CreativeWork" }, + { "$ref": "schema:Product" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:CreativeWork" }, + { "$ref": "schema:Product" } + ] + } + } + ] + }, + "isFamilyFriendly": { + "description": "Indicates whether this content is family friendly.", + "type": "boolean" + }, + "isPartOf": { + "description": "Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.", + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:CreativeWork" } + ] + }, + "keywords": { + "description": "Keywords or tags used to describe some item. Multiple textual entries in a keywords list are typically delimited by commas, or by repeating the property.", + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:DefinedTerm" } + ] + }, + "learningResourceType": { + "description": "The predominant type or kind characterizing the learning resource. For example, 'presentation', 'handout'.", + "anyOf": [{ "type": "string" }, { "$ref": "schema:DefinedTerm" }] + }, + "license": { + "description": "A license document that applies to this content, typically indicated by URL.", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:CreativeWork" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:CreativeWork" } + ] + } + } + ] + }, + "locationCreated": { + "description": "The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.", + "$ref": "schema:Place" + }, + "mainEntity": { + "description": "Indicates the primary entity described in some page or other CreativeWork.", + "oneOf": [ + { "$ref": "schema:Thing" }, + { "type": "array", "items": { "$ref": "schema:Thing" } } + ] + }, + "maintainer": { + "description": "A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on \"upstream\" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work.\n ", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + } + } + ] + }, + "material": { + "description": "A material that something is made from, e.g. leather, wool, cotton, paper.", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:Product" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:Product" } + ] + } + } + ] + }, + "mentions": { + "description": "Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.", + "oneOf": [ + { "$ref": "schema:Thing" }, + { "type": "array", "items": { "$ref": "schema:Thing" } } + ] + }, + "offers": { + "description": "An offer to provide this item—for example, an offer to sell a product, rent the DVD of a movie, perform a service, or give away tickets to an event. Use [[businessFunction]] to indicate the kind of transaction offered, i.e. sell, lease, etc. This property can also be used to describe a [[Demand]]. While this property is listed as expected on a number of common types, it can be used in others. In that case, using a second type, such as Product or a subtype of Product, can clarify the nature of the offer.\n ", + "oneOf": [ + { "anyOf": [{ "$ref": "schema:Demand" }, { "$ref": "schema:Offer" }] }, + { + "type": "array", + "items": { + "anyOf": [{ "$ref": "schema:Demand" }, { "$ref": "schema:Offer" }] + } + } + ] + }, + "pattern": { + "description": "A pattern that something has, for example 'polka dot', 'striped', 'Canadian flag'. Values are typically expressed as text, although links to controlled value schemes are also supported.", + "oneOf": [ + { "anyOf": [{ "type": "string" }, { "$ref": "schema:DefinedTerm" }] }, + { + "type": "array", + "items": { + "anyOf": [{ "type": "string" }, { "$ref": "schema:DefinedTerm" }] + } + } + ] + }, + "position": { + "description": "The position of an item in a series or sequence of items.", + "anyOf": [{ "type": "integer" }, { "type": "string" }] + }, + "producer": { + "description": "The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).", + "anyOf": [{ "$ref": "schema:Organization" }, { "$ref": "schema:Person" }] + }, + "provider": { + "description": "The service provider, service operator, or service performer; the goods producer. Another party (a seller) may offer those services or goods on behalf of the provider. A provider may also serve as the seller.", + "anyOf": [{ "$ref": "schema:Organization" }, { "$ref": "schema:Person" }] + }, + "publication": { + "description": "A publication event associated with the item.", + "oneOf": [ + { "$ref": "schema:PublicationEvent" }, + { "type": "array", "items": { "$ref": "schema:PublicationEvent" } } + ] + }, + "publisher": { + "description": "The publisher of the article in question.", + "anyOf": [{ "$ref": "schema:Organization" }, { "$ref": "schema:Person" }] + }, + "publisherImprint": { + "description": "The publishing division which published the comic.", + "$ref": "schema:Organization" + }, + "publishingPrinciples": { + "description": "The publishingPrinciples property indicates (typically via [[URL]]) a document describing the editorial principles of an [[Organization]] (or individual, e.g. a [[Person]] writing a blog) that relate to their activities as a publisher, e.g. ethics or diversity policies. When applied to a [[CreativeWork]] (e.g. [[NewsArticle]]) the principles are those of the party primarily responsible for the creation of the [[CreativeWork]].\n\nWhile such policies are most typically expressed in natural language, sometimes related information (e.g. indicating a [[funder]]) can be expressed using schema.org terminology.\n", + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:CreativeWork" } + ] + }, + "recordedAt": { + "description": "The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.", + "$ref": "schema:Event" + }, + "releasedEvent": { + "description": "The place and time the release was issued, expressed as a PublicationEvent.", + "$ref": "schema:PublicationEvent" + }, + "review": { + "description": "A review of the item.", + "oneOf": [ + { "$ref": "schema:Review" }, + { "type": "array", "items": { "$ref": "schema:Review" } } + ] + }, + "reviews": { + "description": "Review of the item.", + "oneOf": [ + { "$ref": "schema:Review" }, + { "type": "array", "items": { "$ref": "schema:Review" } } + ] + }, + "schemaVersion": { + "description": "Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to\n indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.", + "oneOf": [ + { + "anyOf": [{ "type": "string", "format": "uri" }, { "type": "string" }] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" } + ] + } + } + ] + }, + "sdDatePublished": { + "description": "Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]].", + "oneOf": [ + { "type": "string", "format": "date" }, + { "type": "array", "items": { "type": "string", "format": "date" } } + ] + }, + "sdLicense": { + "description": "A license document that applies to this structured data, typically indicated by URL.", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:CreativeWork" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:CreativeWork" } + ] + } + } + ] + }, + "sdPublisher": { + "description": "Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The\n[[sdPublisher]] property helps make such practices more explicit.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + } + } + ] + }, + "size": { + "description": "A standardized size of a product or creative work, specified either through a simple textual string (for example 'XL', '32Wx34L'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ", + "oneOf": [ + { + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:DefinedTerm" }, + { "$ref": "schema:QuantitativeValue" }, + { "$ref": "schema:SizeSpecification" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:DefinedTerm" }, + { "$ref": "schema:QuantitativeValue" }, + { "$ref": "schema:SizeSpecification" } + ] + } + } + ] + }, + "sourceOrganization": { + "description": "The Organization on whose behalf the creator was working.", + "$ref": "schema:Organization" + }, + "spatial": { + "description": "The \"spatial\" property can be used in cases when more specific properties\n(e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.", + "$ref": "schema:Place" + }, + "spatialCoverage": { + "description": "The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of\n contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates\n areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.", + "$ref": "schema:Place" + }, + "sponsor": { + "description": "A person or organization that supports a thing through a pledge, promise, or financial contribution. E.g. a sponsor of a Medical Study or a corporate sponsor of an event.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + } + } + ] + }, + "teaches": { + "description": "The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.", + "anyOf": [{ "type": "string" }, { "$ref": "schema:DefinedTerm" }] + }, + "temporal": { + "description": "The \"temporal\" property can be used in cases where more specific properties\n(e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.", + "anyOf": [ + { "type": "string", "format": "date-time" }, + { "type": "string" } + ] + }, + "temporalCoverage": { + "description": "The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In\n the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written \"2011/2012\"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL.\n Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via \"1939/1945\".\n\nOpen-ended date ranges can be written with \"..\" in place of the end date. For example, \"2015-11/..\" indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.", + "anyOf": [ + { "type": "string", "format": "date-time" }, + { "type": "string", "format": "uri" }, + { "type": "string" } + ] + }, + "text": { + "description": "The textual content of this CreativeWork.", + "type": "string" + }, + "thumbnail": { + "description": "Thumbnail image for an image or video.", + "$ref": "schema:ImageObject" + }, + "thumbnailUrl": { + "description": "A thumbnail image relevant to the Thing.", + "oneOf": [ + { "type": "string", "format": "uri" }, + { "type": "array", "items": { "type": "string", "format": "uri" } } + ] + }, + "timeRequired": { + "description": "Approximate or typical time it usually takes to work with or through the content of this work for the typical or target audience.", + "type": "string", + "$comment": "https://schema.org/Duration" + }, + "translationOfWork": { + "description": "The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.", + "$ref": "schema:CreativeWork" + }, + "translator": { + "description": "Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + } + } + ] + }, + "typicalAgeRange": { + "description": "The typical expected age range, e.g. '7-9', '11-'.", + "type": "string" + }, + "usageInfo": { + "description": "The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options.\n\nThis property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.", + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:CreativeWork" } + ] + }, + "version": { + "description": "The version of the CreativeWork embodied by a specified resource.", + "anyOf": [{ "type": "number" }, { "type": "string" }] + }, + "video": { + "description": "An embedded video object.", + "oneOf": [ + { + "anyOf": [{ "$ref": "schema:Clip" }, { "$ref": "schema:VideoObject" }] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:Clip" }, + { "$ref": "schema:VideoObject" } + ] + } + } + ] + }, + "wordCount": { + "description": "The number of words in the text of the CreativeWork such as an Article, Book, etc.", + "type": "integer" + }, + "workExample": { + "description": "Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.", + "oneOf": [ + { "$ref": "schema:CreativeWork" }, + { "type": "array", "items": { "$ref": "schema:CreativeWork" } } + ] + }, + "workTranslation": { + "description": "A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.", + "oneOf": [ + { "$ref": "schema:CreativeWork" }, + { "type": "array", "items": { "$ref": "schema:CreativeWork" } } + ] + } + } +} diff --git a/registry/schema-org/CreativeWorkSeason.schema.json b/registry/schema-org/CreativeWorkSeason.schema.json new file mode 100644 index 0000000..7b08f5e --- /dev/null +++ b/registry/schema-org/CreativeWorkSeason.schema.json @@ -0,0 +1,87 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:CreativeWorkSeason", + "title": "CreativeWorkSeason", + "description": "A media season, e.g. TV, radio, video game etc.", + "type": "object", + "allOf": [ + { + "description": "The most generic kind of creative work, including books, movies, photographs, software programs, etc.", + "$ref": "schema:CreativeWork" + } + ], + "properties": { + "actor": { + "description": "An actor (individual or a group), 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.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:PerformingGroup" }, + { "$ref": "schema:Person" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:PerformingGroup" }, + { "$ref": "schema:Person" } + ] + } + } + ] + }, + "director": { + "description": "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.", + "$ref": "schema:Person" + }, + "endDate": { + "description": "The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).", + "anyOf": [ + { "type": "string", "format": "date" }, + { "type": "string", "format": "date-time" } + ] + }, + "episode": { + "description": "An episode of a TV, radio or game media within a series or season.", + "oneOf": [ + { "$ref": "schema:Episode" }, + { "type": "array", "items": { "$ref": "schema:Episode" } } + ] + }, + "episodes": { + "description": "An episode of a TV/radio series or season.", + "oneOf": [ + { "$ref": "schema:Episode" }, + { "type": "array", "items": { "$ref": "schema:Episode" } } + ] + }, + "numberOfEpisodes": { + "description": "The number of episodes in this season or series.", + "type": "integer" + }, + "partOfSeries": { + "description": "The series to which this episode or season belongs.", + "$ref": "schema:CreativeWorkSeries" + }, + "productionCompany": { + "description": "The production company or studio responsible for the item, e.g. series, video game, episode etc.", + "$ref": "schema:Organization" + }, + "seasonNumber": { + "description": "Position of the season within an ordered group of seasons.", + "anyOf": [{ "type": "integer" }, { "type": "string" }] + }, + "startDate": { + "description": "The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).", + "anyOf": [ + { "type": "string", "format": "date" }, + { "type": "string", "format": "date-time" } + ] + }, + "trailer": { + "description": "The trailer of a movie or TV/radio series, season, episode, etc.", + "$ref": "schema:VideoObject" + } + } +} diff --git a/registry/schema-org/CreativeWorkSeries.schema.json b/registry/schema-org/CreativeWorkSeries.schema.json new file mode 100644 index 0000000..6f4f3bf --- /dev/null +++ b/registry/schema-org/CreativeWorkSeries.schema.json @@ -0,0 +1,37 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:CreativeWorkSeries", + "title": "CreativeWorkSeries", + "description": "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 ", + "type": "object", + "allOf": [ + { + "description": "The most generic kind of creative work, including books, movies, photographs, software programs, etc.", + "$ref": "schema:CreativeWork" + }, + { + "description": "A Series in schema.org is a group of related items, typically but not necessarily of the same kind. See also [[CreativeWorkSeries]], [[EventSeries]].", + "$ref": "schema:Series" + } + ], + "properties": { + "endDate": { + "description": "The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).", + "anyOf": [ + { "type": "string", "format": "date" }, + { "type": "string", "format": "date-time" } + ] + }, + "issn": { + "description": "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.", + "type": "string" + }, + "startDate": { + "description": "The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).", + "anyOf": [ + { "type": "string", "format": "date" }, + { "type": "string", "format": "date-time" } + ] + } + } +} diff --git a/registry/schema-org/CreditCard.schema.json b/registry/schema-org/CreditCard.schema.json new file mode 100644 index 0000000..3247676 --- /dev/null +++ b/registry/schema-org/CreditCard.schema.json @@ -0,0 +1,17 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:CreditCard", + "title": "CreditCard", + "description": "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 ", + "type": "object", + "allOf": [ + { + "description": "A financial product for the loaning of an amount of money, or line of credit, under agreed terms and charges.", + "$ref": "schema:LoanOrCredit" + }, + { + "description": "A payment method using a credit, debit, store or other card to associate the payment with an account.", + "$ref": "schema:PaymentCard" + } + ] +} diff --git a/registry/schema-org/Crematorium.schema.json b/registry/schema-org/Crematorium.schema.json new file mode 100644 index 0000000..4624432 --- /dev/null +++ b/registry/schema-org/Crematorium.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Crematorium", + "title": "Crematorium", + "description": "A crematorium.", + "type": "object", + "allOf": [ + { + "description": "A public structure, such as a town hall or concert hall.", + "$ref": "schema:CivicStructure" + } + ] +} diff --git a/registry/schema-org/CriticReview.schema.json b/registry/schema-org/CriticReview.schema.json new file mode 100644 index 0000000..9982386 --- /dev/null +++ b/registry/schema-org/CriticReview.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:CriticReview", + "title": "CriticReview", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "A review of an item - for example, of a restaurant, movie, or store.", + "$ref": "schema:Review" + } + ] +} diff --git a/registry/schema-org/CssSelectorType.schema.json b/registry/schema-org/CssSelectorType.schema.json new file mode 100644 index 0000000..091c070 --- /dev/null +++ b/registry/schema-org/CssSelectorType.schema.json @@ -0,0 +1,8 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:CssSelectorType", + "title": "CssSelectorType", + "description": "Text representing a CSS selector.", + "type": "object", + "allOf": [{ "description": "Data type: Text.", "$ref": "schema:Text" }] +} diff --git a/registry/schema-org/CurrencyConversionService.schema.json b/registry/schema-org/CurrencyConversionService.schema.json new file mode 100644 index 0000000..068a630 --- /dev/null +++ b/registry/schema-org/CurrencyConversionService.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:CurrencyConversionService", + "title": "CurrencyConversionService", + "description": "A service to convert funds from one currency to another currency.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:FinancialProduct" + } + ] +} diff --git a/registry/schema-org/DDxElement.schema.json b/registry/schema-org/DDxElement.schema.json new file mode 100644 index 0000000..779a6fe --- /dev/null +++ b/registry/schema-org/DDxElement.schema.json @@ -0,0 +1,29 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:DDxElement", + "title": "DDxElement", + "description": "An alternative, closely-related condition typically considered later in the differential diagnosis process along with the signs that are used to distinguish it.", + "type": "object", + "allOf": [ + { + "description": "A utility class that serves as the umbrella for a number of 'intangible' things in the medical space.", + "$ref": "schema:MedicalIntangible" + } + ], + "properties": { + "diagnosis": { + "description": "One or more alternative conditions considered in the differential diagnosis process as output of a diagnosis process.", + "oneOf": [ + { "$ref": "schema:MedicalCondition" }, + { "type": "array", "items": { "$ref": "schema:MedicalCondition" } } + ] + }, + "distinguishingSign": { + "description": "One of a set of signs and symptoms that can be used to distinguish this diagnosis from others in the differential diagnosis.", + "oneOf": [ + { "$ref": "schema:MedicalSignOrSymptom" }, + { "type": "array", "items": { "$ref": "schema:MedicalSignOrSymptom" } } + ] + } + } +} diff --git a/registry/schema-org/DanceEvent.schema.json b/registry/schema-org/DanceEvent.schema.json new file mode 100644 index 0000000..4d87dd0 --- /dev/null +++ b/registry/schema-org/DanceEvent.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:DanceEvent", + "title": "DanceEvent", + "description": "Event type: A social dance.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:Event" + } + ] +} diff --git a/registry/schema-org/DanceGroup.schema.json b/registry/schema-org/DanceGroup.schema.json new file mode 100644 index 0000000..c8c0594 --- /dev/null +++ b/registry/schema-org/DanceGroup.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:DanceGroup", + "title": "DanceGroup", + "description": "A dance group—for example, the Alvin Ailey Dance Theater or Riverdance.", + "type": "object", + "allOf": [ + { + "description": "A performance group, such as a band, an orchestra, or a circus.", + "$ref": "schema:PerformingGroup" + } + ] +} diff --git a/registry/schema-org/DataCatalog.schema.json b/registry/schema-org/DataCatalog.schema.json new file mode 100644 index 0000000..b3ed366 --- /dev/null +++ b/registry/schema-org/DataCatalog.schema.json @@ -0,0 +1,70 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:DataCatalog", + "title": "DataCatalog", + "description": "A collection of datasets.", + "type": "object", + "allOf": [ + { + "description": "The most generic kind of creative work, including books, movies, photographs, software programs, etc.", + "$ref": "schema:CreativeWork" + } + ], + "properties": { + "dataset": { + "description": "A dataset contained in this catalog.", + "oneOf": [ + { "$ref": "schema:Dataset" }, + { "type": "array", "items": { "$ref": "schema:Dataset" } } + ] + }, + "measurementMethod": { + "description": "A subproperty of [[measurementTechnique]] that can be used for specifying specific methods, in particular via [[MeasurementMethodEnum]].", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:DefinedTerm" }, + { "$ref": "schema:MeasurementMethodEnum" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:DefinedTerm" }, + { "$ref": "schema:MeasurementMethodEnum" } + ] + } + } + ] + }, + "measurementTechnique": { + "description": "A technique, method or technology used in an [[Observation]], [[StatisticalVariable]] or [[Dataset]] (or [[DataDownload]], [[DataCatalog]]), corresponding to the method used for measuring the corresponding variable(s) (for datasets, described using [[variableMeasured]]; for [[Observation]], a [[StatisticalVariable]]). Often but not necessarily each [[variableMeasured]] will have an explicit representation as (or mapping to) an property such as those defined in Schema.org, or other RDF vocabularies and \"knowledge graphs\". In that case the subproperty of [[variableMeasured]] called [[measuredProperty]] is applicable.\n \nThe [[measurementTechnique]] property helps when extra clarification is needed about how a [[measuredProperty]] was measured. 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 can often serve as a high level summary for dataset discovery. \n\nFor 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\". \n\nIf there are several [[variableMeasured]] properties recorded for some given data object, use a [[PropertyValue]] for each [[variableMeasured]] and attach the corresponding [[measurementTechnique]]. The value can also be from an enumeration, organized as a [[MeasurementMetholdEnumeration]].", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:DefinedTerm" }, + { "$ref": "schema:MeasurementMethodEnum" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:DefinedTerm" }, + { "$ref": "schema:MeasurementMethodEnum" } + ] + } + } + ] + } + } +} diff --git a/registry/schema-org/DataDownload.schema.json b/registry/schema-org/DataDownload.schema.json new file mode 100644 index 0000000..70aceab --- /dev/null +++ b/registry/schema-org/DataDownload.schema.json @@ -0,0 +1,63 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:DataDownload", + "title": "DataDownload", + "description": "All or part of a [[Dataset]] in downloadable form. ", + "type": "object", + "allOf": [ + { + "description": "A media object, such as an image, video, audio, or text 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).", + "$ref": "schema:MediaObject" + } + ], + "properties": { + "measurementMethod": { + "description": "A subproperty of [[measurementTechnique]] that can be used for specifying specific methods, in particular via [[MeasurementMethodEnum]].", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:DefinedTerm" }, + { "$ref": "schema:MeasurementMethodEnum" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:DefinedTerm" }, + { "$ref": "schema:MeasurementMethodEnum" } + ] + } + } + ] + }, + "measurementTechnique": { + "description": "A technique, method or technology used in an [[Observation]], [[StatisticalVariable]] or [[Dataset]] (or [[DataDownload]], [[DataCatalog]]), corresponding to the method used for measuring the corresponding variable(s) (for datasets, described using [[variableMeasured]]; for [[Observation]], a [[StatisticalVariable]]). Often but not necessarily each [[variableMeasured]] will have an explicit representation as (or mapping to) an property such as those defined in Schema.org, or other RDF vocabularies and \"knowledge graphs\". In that case the subproperty of [[variableMeasured]] called [[measuredProperty]] is applicable.\n \nThe [[measurementTechnique]] property helps when extra clarification is needed about how a [[measuredProperty]] was measured. 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 can often serve as a high level summary for dataset discovery. \n\nFor 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\". \n\nIf there are several [[variableMeasured]] properties recorded for some given data object, use a [[PropertyValue]] for each [[variableMeasured]] and attach the corresponding [[measurementTechnique]]. The value can also be from an enumeration, organized as a [[MeasurementMetholdEnumeration]].", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:DefinedTerm" }, + { "$ref": "schema:MeasurementMethodEnum" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:DefinedTerm" }, + { "$ref": "schema:MeasurementMethodEnum" } + ] + } + } + ] + } + } +} diff --git a/registry/schema-org/DataFeed.schema.json b/registry/schema-org/DataFeed.schema.json new file mode 100644 index 0000000..4cb21b2 --- /dev/null +++ b/registry/schema-org/DataFeed.schema.json @@ -0,0 +1,37 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:DataFeed", + "title": "DataFeed", + "description": "A single feed providing structured information about one or more entities or topics.", + "type": "object", + "allOf": [ + { + "description": "A body of structured information describing some topic(s) of interest.", + "$ref": "schema:Dataset" + } + ], + "properties": { + "dataFeedElement": { + "description": "An item within a data feed. Data feeds may have many elements.", + "oneOf": [ + { + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:DataFeedItem" }, + { "$ref": "schema:Thing" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:DataFeedItem" }, + { "$ref": "schema:Thing" } + ] + } + } + ] + } + } +} diff --git a/registry/schema-org/DataFeedItem.schema.json b/registry/schema-org/DataFeedItem.schema.json new file mode 100644 index 0000000..00b26f5 --- /dev/null +++ b/registry/schema-org/DataFeedItem.schema.json @@ -0,0 +1,43 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:DataFeedItem", + "title": "DataFeedItem", + "description": "A single item within a larger data feed.", + "type": "object", + "allOf": [ + { + "description": "A utility class that serves as the umbrella for a number of 'intangible' things such as quantities, structured values, etc.", + "$ref": "schema:Intangible" + } + ], + "properties": { + "dateCreated": { + "description": "The date on which the CreativeWork was created or the item was added to a DataFeed.", + "anyOf": [ + { "type": "string", "format": "date" }, + { "type": "string", "format": "date-time" } + ] + }, + "dateDeleted": { + "description": "The datetime the item was removed from the DataFeed.", + "anyOf": [ + { "type": "string", "format": "date" }, + { "type": "string", "format": "date-time" } + ] + }, + "dateModified": { + "description": "The date on which the CreativeWork was most recently modified or when the item's entry was modified within a DataFeed.", + "anyOf": [ + { "type": "string", "format": "date" }, + { "type": "string", "format": "date-time" } + ] + }, + "item": { + "description": "An entity represented by an entry in a list or data feed (e.g. an 'artist' in a list of 'artists').", + "oneOf": [ + { "$ref": "schema:Thing" }, + { "type": "array", "items": { "$ref": "schema:Thing" } } + ] + } + } +} diff --git a/registry/schema-org/DataType.schema.json b/registry/schema-org/DataType.schema.json new file mode 100644 index 0000000..6358761 --- /dev/null +++ b/registry/schema-org/DataType.schema.json @@ -0,0 +1,7 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:DataType", + "title": "DataType", + "description": "The basic data types such as Integers, Strings, etc.", + "type": "object" +} diff --git a/registry/schema-org/Dataset.schema.json b/registry/schema-org/Dataset.schema.json new file mode 100644 index 0000000..257d614 --- /dev/null +++ b/registry/schema-org/Dataset.schema.json @@ -0,0 +1,109 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Dataset", + "title": "Dataset", + "description": "A body of structured information describing some topic(s) of interest.", + "type": "object", + "allOf": [ + { + "description": "The most generic kind of creative work, including books, movies, photographs, software programs, etc.", + "$ref": "schema:CreativeWork" + } + ], + "properties": { + "catalog": { + "description": "A data catalog which contains this dataset.", + "oneOf": [ + { "$ref": "schema:DataCatalog" }, + { "type": "array", "items": { "$ref": "schema:DataCatalog" } } + ] + }, + "datasetTimeInterval": { + "description": "The range of temporal applicability of a dataset, e.g. for a 2011 census dataset, the year 2011 (in ISO 8601 time interval format).", + "type": "string", + "format": "date-time" + }, + "distribution": { + "description": "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.", + "oneOf": [ + { "$ref": "schema:DataDownload" }, + { "type": "array", "items": { "$ref": "schema:DataDownload" } } + ] + }, + "includedDataCatalog": { + "description": "A data catalog which contains this dataset (this property was previously 'catalog', preferred name is now 'includedInDataCatalog').", + "oneOf": [ + { "$ref": "schema:DataCatalog" }, + { "type": "array", "items": { "$ref": "schema:DataCatalog" } } + ] + }, + "includedInDataCatalog": { + "description": "A data catalog which contains this dataset.", + "oneOf": [ + { "$ref": "schema:DataCatalog" }, + { "type": "array", "items": { "$ref": "schema:DataCatalog" } } + ] + }, + "issn": { + "description": "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.", + "type": "string" + }, + "measurementMethod": { + "description": "A subproperty of [[measurementTechnique]] that can be used for specifying specific methods, in particular via [[MeasurementMethodEnum]].", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:DefinedTerm" }, + { "$ref": "schema:MeasurementMethodEnum" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:DefinedTerm" }, + { "$ref": "schema:MeasurementMethodEnum" } + ] + } + } + ] + }, + "measurementTechnique": { + "description": "A technique, method or technology used in an [[Observation]], [[StatisticalVariable]] or [[Dataset]] (or [[DataDownload]], [[DataCatalog]]), corresponding to the method used for measuring the corresponding variable(s) (for datasets, described using [[variableMeasured]]; for [[Observation]], a [[StatisticalVariable]]). Often but not necessarily each [[variableMeasured]] will have an explicit representation as (or mapping to) an property such as those defined in Schema.org, or other RDF vocabularies and \"knowledge graphs\". In that case the subproperty of [[variableMeasured]] called [[measuredProperty]] is applicable.\n \nThe [[measurementTechnique]] property helps when extra clarification is needed about how a [[measuredProperty]] was measured. 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 can often serve as a high level summary for dataset discovery. \n\nFor 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\". \n\nIf there are several [[variableMeasured]] properties recorded for some given data object, use a [[PropertyValue]] for each [[variableMeasured]] and attach the corresponding [[measurementTechnique]]. The value can also be from an enumeration, organized as a [[MeasurementMetholdEnumeration]].", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:DefinedTerm" }, + { "$ref": "schema:MeasurementMethodEnum" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:DefinedTerm" }, + { "$ref": "schema:MeasurementMethodEnum" } + ] + } + } + ] + }, + "variableMeasured": { + "description": "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, or more explicitly as a [[StatisticalVariable]].", + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:Property" }, + { "$ref": "schema:PropertyValue" }, + { "$ref": "schema:StatisticalVariable" } + ] + } + } +} diff --git a/registry/schema-org/DatedMoneySpecification.schema.json b/registry/schema-org/DatedMoneySpecification.schema.json new file mode 100644 index 0000000..129eb4d --- /dev/null +++ b/registry/schema-org/DatedMoneySpecification.schema.json @@ -0,0 +1,37 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:DatedMoneySpecification", + "title": "DatedMoneySpecification", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:StructuredValue" + } + ], + "properties": { + "amount": { + "description": "The amount of money.", + "anyOf": [{ "type": "number" }, { "$ref": "schema:MonetaryAmount" }] + }, + "currency": { + "description": "The currency in which the monetary amount is expressed.\\n\\nUse standard formats: [ISO 4217 currency format](http://en.wikipedia.org/wiki/ISO_4217), e.g. \"USD\"; [Ticker symbol](https://en.wikipedia.org/wiki/List_of_cryptocurrencies) for cryptocurrencies, e.g. \"BTC\"; well known names for [Local Exchange Trading Systems](https://en.wikipedia.org/wiki/Local_exchange_trading_system) (LETS) and other currency types, e.g. \"Ithaca HOUR\".", + "type": "string" + }, + "endDate": { + "description": "The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).", + "anyOf": [ + { "type": "string", "format": "date" }, + { "type": "string", "format": "date-time" } + ] + }, + "startDate": { + "description": "The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).", + "anyOf": [ + { "type": "string", "format": "date" }, + { "type": "string", "format": "date-time" } + ] + } + } +} diff --git a/registry/schema-org/DayOfWeek.schema.json b/registry/schema-org/DayOfWeek.schema.json new file mode 100644 index 0000000..066d087 --- /dev/null +++ b/registry/schema-org/DayOfWeek.schema.json @@ -0,0 +1,41 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:DayOfWeek", + "title": "DayOfWeek", + "description": "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 ", + "type": "string", + "oneOf": [ + { + "description": "The day of the week between Thursday and Saturday.", + "const": "Friday" + }, + { + "description": "The day of the week between Sunday and Tuesday.", + "const": "Monday" + }, + { + "description": "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.", + "const": "PublicHolidays" + }, + { + "description": "The day of the week between Friday and Sunday.", + "const": "Saturday" + }, + { + "description": "The day of the week between Saturday and Monday.", + "const": "Sunday" + }, + { + "description": "The day of the week between Wednesday and Friday.", + "const": "Thursday" + }, + { + "description": "The day of the week between Monday and Wednesday.", + "const": "Tuesday" + }, + { + "description": "The day of the week between Tuesday and Thursday.", + "const": "Wednesday" + } + ] +} diff --git a/registry/schema-org/DaySpa.schema.json b/registry/schema-org/DaySpa.schema.json new file mode 100644 index 0000000..4ef8c10 --- /dev/null +++ b/registry/schema-org/DaySpa.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:DaySpa", + "title": "DaySpa", + "description": "A day spa.", + "type": "object", + "allOf": [ + { + "description": "Health and beauty.", + "$ref": "schema:HealthAndBeautyBusiness" + } + ] +} diff --git a/registry/schema-org/DeactivateAction.schema.json b/registry/schema-org/DeactivateAction.schema.json new file mode 100644 index 0000000..4b3b966 --- /dev/null +++ b/registry/schema-org/DeactivateAction.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:DeactivateAction", + "title": "DeactivateAction", + "description": "The act of stopping or deactivating a device or application (e.g. stopping a timer or turning off a flashlight).", + "type": "object", + "allOf": [ + { + "description": "An agent controls a device or application.", + "$ref": "schema:ControlAction" + } + ] +} diff --git a/registry/schema-org/DefenceEstablishment.schema.json b/registry/schema-org/DefenceEstablishment.schema.json new file mode 100644 index 0000000..cda8fda --- /dev/null +++ b/registry/schema-org/DefenceEstablishment.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:DefenceEstablishment", + "title": "DefenceEstablishment", + "description": "A defence establishment, such as an army or navy base.", + "type": "object", + "allOf": [ + { + "description": "A government building.", + "$ref": "schema:GovernmentBuilding" + } + ] +} diff --git a/registry/schema-org/DefinedRegion.schema.json b/registry/schema-org/DefinedRegion.schema.json new file mode 100644 index 0000000..da38b3a --- /dev/null +++ b/registry/schema-org/DefinedRegion.schema.json @@ -0,0 +1,44 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:DefinedRegion", + "title": "DefinedRegion", + "description": "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...\n", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:StructuredValue" + } + ], + "properties": { + "addressCountry": { + "description": "The country. Recommended to be in 2-letter [ISO 3166-1 alpha-2](http://en.wikipedia.org/wiki/ISO_3166-1) format, for example \"US\". For backward compatibility, a 3-letter [ISO 3166-1 alpha-3](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) country code such as \"SGP\" or a full country name such as \"Singapore\" can also be used.", + "anyOf": [{ "type": "string" }, { "$ref": "schema:Country" }] + }, + "addressRegion": { + "description": "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).", + "type": "string" + }, + "postalCode": { + "description": "The postal code. For example, 94043.", + "type": "string" + }, + "postalCodePrefix": { + "description": "A defined range of postal codes indicated by a common textual prefix. Used for non-numeric systems such as UK.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "postalCodeRange": { + "description": "A defined range of postal codes.", + "oneOf": [ + { "$ref": "schema:PostalCodeRangeSpecification" }, + { + "type": "array", + "items": { "$ref": "schema:PostalCodeRangeSpecification" } + } + ] + } + } +} diff --git a/registry/schema-org/DefinedTerm.schema.json b/registry/schema-org/DefinedTerm.schema.json new file mode 100644 index 0000000..25c4e09 --- /dev/null +++ b/registry/schema-org/DefinedTerm.schema.json @@ -0,0 +1,42 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:DefinedTerm", + "title": "DefinedTerm", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "A utility class that serves as the umbrella for a number of 'intangible' things such as quantities, structured values, etc.", + "$ref": "schema:Intangible" + } + ], + "properties": { + "inDefinedTermSet": { + "description": "A [[DefinedTermSet]] that contains this term.", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:DefinedTermSet" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:DefinedTermSet" } + ] + } + } + ] + }, + "termCode": { + "description": "A code that identifies this [[DefinedTerm]] within a [[DefinedTermSet]].", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + } + } +} diff --git a/registry/schema-org/DefinedTermSet.schema.json b/registry/schema-org/DefinedTermSet.schema.json new file mode 100644 index 0000000..de73368 --- /dev/null +++ b/registry/schema-org/DefinedTermSet.schema.json @@ -0,0 +1,22 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:DefinedTermSet", + "title": "DefinedTermSet", + "description": "A set of defined terms, for example a set of categories or a classification scheme, a glossary, dictionary or enumeration.", + "type": "object", + "allOf": [ + { + "description": "The most generic kind of creative work, including books, movies, photographs, software programs, etc.", + "$ref": "schema:CreativeWork" + } + ], + "properties": { + "hasDefinedTerm": { + "description": "A Defined Term contained in this term set.", + "oneOf": [ + { "$ref": "schema:DefinedTerm" }, + { "type": "array", "items": { "$ref": "schema:DefinedTerm" } } + ] + } + } +} diff --git a/registry/schema-org/DeleteAction.schema.json b/registry/schema-org/DeleteAction.schema.json new file mode 100644 index 0000000..42b2951 --- /dev/null +++ b/registry/schema-org/DeleteAction.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:DeleteAction", + "title": "DeleteAction", + "description": "The act of editing a recipient by removing one of its objects.", + "type": "object", + "allOf": [ + { + "description": "The act of managing by changing/editing the state of the object.", + "$ref": "schema:UpdateAction" + } + ] +} diff --git a/registry/schema-org/DeliveryChargeSpecification.schema.json b/registry/schema-org/DeliveryChargeSpecification.schema.json new file mode 100644 index 0000000..efb41c7 --- /dev/null +++ b/registry/schema-org/DeliveryChargeSpecification.schema.json @@ -0,0 +1,44 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:DeliveryChargeSpecification", + "title": "DeliveryChargeSpecification", + "description": "The price for the delivery of an offer using a particular delivery method.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:PriceSpecification" + } + ], + "properties": { + "appliesToDeliveryMethod": { + "description": "The delivery method(s) to which the delivery charge or payment charge specification applies.", + "$ref": "schema:DeliveryMethod" + }, + "areaServed": { + "description": "The geographic area where a service or offered item is provided.", + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:AdministrativeArea" }, + { "$ref": "schema:GeoShape" }, + { "$ref": "schema:Place" } + ] + }, + "eligibleRegion": { + "description": "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.\\n\\nSee also [[ineligibleRegion]].\n ", + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:GeoShape" }, + { "$ref": "schema:Place" } + ] + }, + "ineligibleRegion": { + "description": "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.\\n\\nSee also [[eligibleRegion]].\n ", + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:GeoShape" }, + { "$ref": "schema:Place" } + ] + } + } +} diff --git a/registry/schema-org/DeliveryEvent.schema.json b/registry/schema-org/DeliveryEvent.schema.json new file mode 100644 index 0000000..7d286c7 --- /dev/null +++ b/registry/schema-org/DeliveryEvent.schema.json @@ -0,0 +1,33 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:DeliveryEvent", + "title": "DeliveryEvent", + "description": "An event involving the delivery of an item.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:Event" + } + ], + "properties": { + "accessCode": { + "description": "Password, PIN, or access code needed for delivery (e.g. from a locker).", + "type": "string" + }, + "availableFrom": { + "description": "When the item is available for pickup from the store, locker, etc.", + "type": "string", + "format": "date-time" + }, + "availableThrough": { + "description": "After this date, the item will no longer be available for pickup.", + "type": "string", + "format": "date-time" + }, + "hasDeliveryMethod": { + "description": "Method used for delivery or shipping.", + "$ref": "schema:DeliveryMethod" + } + } +} diff --git a/registry/schema-org/DeliveryMethod.schema.json b/registry/schema-org/DeliveryMethod.schema.json new file mode 100644 index 0000000..5e27cf0 --- /dev/null +++ b/registry/schema-org/DeliveryMethod.schema.json @@ -0,0 +1,21 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:DeliveryMethod", + "title": "DeliveryMethod", + "description": "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 ", + "type": "string", + "oneOf": [ + { + "description": "A DeliveryMethod in which an item is made available via locker.", + "const": "LockerDelivery" + }, + { + "description": "A DeliveryMethod in which an item is collected on site, e.g. in a store or at a box office.", + "const": "OnSitePickup" + }, + { + "description": "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 ", + "const": "ParcelService" + } + ] +} diff --git a/registry/schema-org/Demand.schema.json b/registry/schema-org/Demand.schema.json new file mode 100644 index 0000000..94927e5 --- /dev/null +++ b/registry/schema-org/Demand.schema.json @@ -0,0 +1,225 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Demand", + "title": "Demand", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "A utility class that serves as the umbrella for a number of 'intangible' things such as quantities, structured values, etc.", + "$ref": "schema:Intangible" + } + ], + "properties": { + "acceptedPaymentMethod": { + "description": "The payment method(s) that are accepted in general by an organization, or for some specific demand or offer.", + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:LoanOrCredit" }, + { "$ref": "schema:PaymentMethod" } + ] + }, + "advanceBookingRequirement": { + "description": "The amount of time that is required between accepting the offer and the actual usage of the resource or service.", + "$ref": "schema:QuantitativeValue" + }, + "areaServed": { + "description": "The geographic area where a service or offered item is provided.", + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:AdministrativeArea" }, + { "$ref": "schema:GeoShape" }, + { "$ref": "schema:Place" } + ] + }, + "asin": { + "description": "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).\n\nNote 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.\nASINs are most commonly encoded as text strings, but the [asin] property supports URL/URI as potential values too.", + "oneOf": [ + { + "anyOf": [{ "type": "string", "format": "uri" }, { "type": "string" }] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" } + ] + } + } + ] + }, + "availability": { + "description": "The availability of this item—for example In stock, Out of stock, Pre-order, etc.", + "$ref": "schema:ItemAvailability" + }, + "availabilityEnds": { + "description": "The end of the availability of the product or service included in the offer.", + "anyOf": [ + { "type": "string", "format": "date" }, + { "type": "string", "format": "date-time" }, + { "type": "string", "format": "time" } + ] + }, + "availabilityStarts": { + "description": "The beginning of the availability of the product or service included in the offer.", + "anyOf": [ + { "type": "string", "format": "date" }, + { "type": "string", "format": "date-time" }, + { "type": "string", "format": "time" } + ] + }, + "availableAtOrFrom": { + "description": "The place(s) from which the offer can be obtained (e.g. store locations).", + "$ref": "schema:Place" + }, + "availableDeliveryMethod": { + "description": "The delivery method(s) available for this offer.", + "$ref": "schema:DeliveryMethod" + }, + "businessFunction": { + "description": "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.", + "$ref": "schema:BusinessFunction" + }, + "deliveryLeadTime": { + "description": "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.", + "$ref": "schema:QuantitativeValue" + }, + "eligibleCustomerType": { + "description": "The type(s) of customers for which the given offer is valid.", + "$ref": "schema:BusinessEntityType" + }, + "eligibleDuration": { + "description": "The duration for which the given offer is valid.", + "$ref": "schema:QuantitativeValue" + }, + "eligibleQuantity": { + "description": "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.", + "$ref": "schema:QuantitativeValue" + }, + "eligibleRegion": { + "description": "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.\\n\\nSee also [[ineligibleRegion]].\n ", + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:GeoShape" }, + { "$ref": "schema:Place" } + ] + }, + "eligibleTransactionVolume": { + "description": "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.", + "$ref": "schema:PriceSpecification" + }, + "gtin": { + "description": "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.\n\nA 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.\n\nThe GS1 [digital link specifications](https://www.gs1.org/standards/Digital-Link/) expresses GTINs as URLs (URIs, IRIs, etc.).\nDigital Links should be populated into the [[hasGS1DigitalLink]] attribute.\n\nNote 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.", + "oneOf": [ + { + "anyOf": [{ "type": "string", "format": "uri" }, { "type": "string" }] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" } + ] + } + } + ] + }, + "gtin12": { + "description": "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.", + "type": "string" + }, + "gtin13": { + "description": "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.", + "type": "string" + }, + "gtin14": { + "description": "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.", + "type": "string" + }, + "gtin8": { + "description": "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.", + "type": "string" + }, + "includesObject": { + "description": "This links to a node or nodes indicating the exact quantity of the products included in an [[Offer]] or [[ProductCollection]].", + "oneOf": [ + { "$ref": "schema:TypeAndQuantityNode" }, + { "type": "array", "items": { "$ref": "schema:TypeAndQuantityNode" } } + ] + }, + "ineligibleRegion": { + "description": "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.\\n\\nSee also [[eligibleRegion]].\n ", + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:GeoShape" }, + { "$ref": "schema:Place" } + ] + }, + "inventoryLevel": { + "description": "The current approximate inventory level for the item or items.", + "$ref": "schema:QuantitativeValue" + }, + "itemCondition": { + "description": "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.", + "oneOf": [ + { "$ref": "schema:OfferItemCondition" }, + { "type": "array", "items": { "$ref": "schema:OfferItemCondition" } } + ] + }, + "itemOffered": { + "description": "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.", + "anyOf": [ + { "$ref": "schema:AggregateOffer" }, + { "$ref": "schema:CreativeWork" }, + { "$ref": "schema:Event" }, + { "$ref": "schema:MenuItem" }, + { "$ref": "schema:Product" }, + { "$ref": "schema:Service" }, + { "$ref": "schema:Trip" } + ] + }, + "mpn": { + "description": "The Manufacturer Part Number (MPN) of the product, or the product to which the offer refers.", + "type": "string" + }, + "priceSpecification": { + "description": "One or more detailed price specifications, indicating the unit price and delivery or payment charges.", + "oneOf": [ + { "$ref": "schema:PriceSpecification" }, + { "type": "array", "items": { "$ref": "schema:PriceSpecification" } } + ] + }, + "seller": { + "description": "An entity which offers (sells / leases / lends / loans) the services / goods. A seller may also be a provider.", + "anyOf": [{ "$ref": "schema:Organization" }, { "$ref": "schema:Person" }] + }, + "serialNumber": { + "description": "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.", + "type": "string" + }, + "sku": { + "description": "The Stock Keeping Unit (SKU), i.e. a merchant-specific identifier for a product or service, or the product to which the offer refers.", + "type": "string" + }, + "validFrom": { + "description": "The date when the item becomes valid.", + "anyOf": [ + { "type": "string", "format": "date" }, + { "type": "string", "format": "date-time" } + ] + }, + "validThrough": { + "description": "The date after when the item is not valid. For example the end of an offer, salary period, or a period of opening hours.", + "anyOf": [ + { "type": "string", "format": "date" }, + { "type": "string", "format": "date-time" } + ] + }, + "warranty": { + "description": "The warranty promise(s) included in the offer.", + "$ref": "schema:WarrantyPromise" + } + } +} diff --git a/registry/schema-org/Dentist.schema.json b/registry/schema-org/Dentist.schema.json new file mode 100644 index 0000000..87fc833 --- /dev/null +++ b/registry/schema-org/Dentist.schema.json @@ -0,0 +1,21 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Dentist", + "title": "Dentist", + "description": "A dentist.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:LocalBusiness" + }, + { + "description": "A particular physical or virtual business of an organization for medical purposes. Examples of MedicalBusiness include different businesses run by health professionals.", + "$ref": "schema:MedicalBusiness" + }, + { + "description": "A medical organization (physical or not), such as hospital, institution or clinic.", + "$ref": "schema:MedicalOrganization" + } + ] +} diff --git a/registry/schema-org/DepartAction.schema.json b/registry/schema-org/DepartAction.schema.json new file mode 100644 index 0000000..45ea5a2 --- /dev/null +++ b/registry/schema-org/DepartAction.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:DepartAction", + "title": "DepartAction", + "description": "The act of departing from a place. An agent departs from a fromLocation for a destination, optionally with participants.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:MoveAction" + } + ] +} diff --git a/registry/schema-org/DepartmentStore.schema.json b/registry/schema-org/DepartmentStore.schema.json new file mode 100644 index 0000000..6236ec4 --- /dev/null +++ b/registry/schema-org/DepartmentStore.schema.json @@ -0,0 +1,8 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:DepartmentStore", + "title": "DepartmentStore", + "description": "A department store.", + "type": "object", + "allOf": [{ "description": "A retail good store.", "$ref": "schema:Store" }] +} diff --git a/registry/schema-org/DepositAccount.schema.json b/registry/schema-org/DepositAccount.schema.json new file mode 100644 index 0000000..e923726 --- /dev/null +++ b/registry/schema-org/DepositAccount.schema.json @@ -0,0 +1,17 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:DepositAccount", + "title": "DepositAccount", + "description": "A type of Bank Account with a main purpose of depositing funds to gain interest or other benefits.", + "type": "object", + "allOf": [ + { + "description": "A product or service offered by a bank whereby one may deposit, withdraw or transfer money and in some cases be paid interest.", + "$ref": "schema:BankAccount" + }, + { + "description": "A type of financial product that typically requires the client to transfer funds to a financial service in return for potential beneficial financial return.", + "$ref": "schema:InvestmentOrDeposit" + } + ] +} diff --git a/registry/schema-org/DiagnosticLab.schema.json b/registry/schema-org/DiagnosticLab.schema.json new file mode 100644 index 0000000..ce40e58 --- /dev/null +++ b/registry/schema-org/DiagnosticLab.schema.json @@ -0,0 +1,22 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:DiagnosticLab", + "title": "DiagnosticLab", + "description": "A medical laboratory that offers on-site or off-site diagnostic services.", + "type": "object", + "allOf": [ + { + "description": "A medical organization (physical or not), such as hospital, institution or clinic.", + "$ref": "schema:MedicalOrganization" + } + ], + "properties": { + "availableTest": { + "description": "A diagnostic test or procedure offered by this lab.", + "oneOf": [ + { "$ref": "schema:MedicalTest" }, + { "type": "array", "items": { "$ref": "schema:MedicalTest" } } + ] + } + } +} diff --git a/registry/schema-org/DiagnosticProcedure.schema.json b/registry/schema-org/DiagnosticProcedure.schema.json new file mode 100644 index 0000000..5f8a22b --- /dev/null +++ b/registry/schema-org/DiagnosticProcedure.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:DiagnosticProcedure", + "title": "DiagnosticProcedure", + "description": "A medical procedure intended primarily for diagnostic, as opposed to therapeutic, purposes.", + "type": "object", + "allOf": [ + { + "description": "A process of care used in either a diagnostic, therapeutic, preventive or palliative capacity that relies on invasive (surgical), non-invasive, or other techniques.", + "$ref": "schema:MedicalProcedure" + } + ] +} diff --git a/registry/schema-org/Diet.schema.json b/registry/schema-org/Diet.schema.json new file mode 100644 index 0000000..872f510 --- /dev/null +++ b/registry/schema-org/Diet.schema.json @@ -0,0 +1,61 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Diet", + "title": "Diet", + "description": "A strategy of regulating the intake of food to achieve or maintain a specific health-related goal.", + "type": "object", + "allOf": [ + { + "description": "The most generic kind of creative work, including books, movies, photographs, software programs, etc.", + "$ref": "schema:CreativeWork" + }, + { + "description": "A process of care involving exercise, changes to diet, fitness routines, and other lifestyle changes aimed at improving a health condition.", + "$ref": "schema:LifestyleModification" + } + ], + "properties": { + "dietFeatures": { + "description": "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.", + "type": "string" + }, + "endorsers": { + "description": "People or organizations that endorse the plan.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + } + } + ] + }, + "expertConsiderations": { + "description": "Medical expert advice related to the plan.", + "type": "string" + }, + "physiologicalBenefits": { + "description": "Specific physiologic benefits associated to the plan.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "risks": { + "description": "Specific physiologic risks associated to the diet plan.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + } + } +} diff --git a/registry/schema-org/DietarySupplement.schema.json b/registry/schema-org/DietarySupplement.schema.json new file mode 100644 index 0000000..d7d2683 --- /dev/null +++ b/registry/schema-org/DietarySupplement.schema.json @@ -0,0 +1,78 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:DietarySupplement", + "title": "DietarySupplement", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:Product" + }, + { + "description": "Any matter of defined composition that has discrete existence, whose origin may be biological, mineral or chemical.", + "$ref": "schema:Substance" + } + ], + "properties": { + "activeIngredient": { + "description": "An active ingredient, typically chemical compounds and/or biologic substances.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "isProprietary": { + "description": "True if this item's name is a proprietary/brand name (vs. generic name).", + "type": "boolean" + }, + "legalStatus": { + "description": "The drug or supplement's legal status, including any controlled substance schedules that apply.", + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:DrugLegalStatus" }, + { "$ref": "schema:MedicalEnumeration" } + ] + }, + "maximumIntake": { + "description": "Recommended intake of this supplement for a given population as defined by a specific recommending authority.", + "$ref": "schema:MaximumDoseSchedule" + }, + "mechanismOfAction": { + "description": "The specific biochemical interaction through which this drug or supplement produces its pharmacological effect.", + "type": "string" + }, + "nonProprietaryName": { + "description": "The generic name of this drug or supplement.", + "type": "string" + }, + "proprietaryName": { + "description": "Proprietary name given to the diet plan, typically by its originator or creator.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "recommendedIntake": { + "description": "Recommended intake of this supplement for a given population as defined by a specific recommending authority.", + "oneOf": [ + { "$ref": "schema:RecommendedDoseSchedule" }, + { + "type": "array", + "items": { "$ref": "schema:RecommendedDoseSchedule" } + } + ] + }, + "safetyConsideration": { + "description": "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.", + "type": "string" + }, + "targetPopulation": { + "description": "Characteristics of the population for which this is intended, or which typically uses it, e.g. 'adults'.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + } + } +} diff --git a/registry/schema-org/DigitalDocument.schema.json b/registry/schema-org/DigitalDocument.schema.json new file mode 100644 index 0000000..8a2d2b3 --- /dev/null +++ b/registry/schema-org/DigitalDocument.schema.json @@ -0,0 +1,25 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:DigitalDocument", + "title": "DigitalDocument", + "description": "An electronic file or document.", + "type": "object", + "allOf": [ + { + "description": "The most generic kind of creative work, including books, movies, photographs, software programs, etc.", + "$ref": "schema:CreativeWork" + } + ], + "properties": { + "hasDigitalDocumentPermission": { + "description": "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\".", + "oneOf": [ + { "$ref": "schema:DigitalDocumentPermission" }, + { + "type": "array", + "items": { "$ref": "schema:DigitalDocumentPermission" } + } + ] + } + } +} diff --git a/registry/schema-org/DigitalDocumentPermission.schema.json b/registry/schema-org/DigitalDocumentPermission.schema.json new file mode 100644 index 0000000..45ecb45 --- /dev/null +++ b/registry/schema-org/DigitalDocumentPermission.schema.json @@ -0,0 +1,28 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:DigitalDocumentPermission", + "title": "DigitalDocumentPermission", + "description": "A permission for a particular person or group to access a particular file.", + "type": "object", + "allOf": [ + { + "description": "A utility class that serves as the umbrella for a number of 'intangible' things such as quantities, structured values, etc.", + "$ref": "schema:Intangible" + } + ], + "properties": { + "grantee": { + "description": "The person, organization, contact point, or audience that has been granted this permission.", + "anyOf": [ + { "$ref": "schema:Audience" }, + { "$ref": "schema:ContactPoint" }, + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + }, + "permissionType": { + "description": "The type of permission granted the person, organization, or audience.", + "$ref": "schema:DigitalDocumentPermissionType" + } + } +} diff --git a/registry/schema-org/DigitalDocumentPermissionType.schema.json b/registry/schema-org/DigitalDocumentPermissionType.schema.json new file mode 100644 index 0000000..222857a --- /dev/null +++ b/registry/schema-org/DigitalDocumentPermissionType.schema.json @@ -0,0 +1,21 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:DigitalDocumentPermissionType", + "title": "DigitalDocumentPermissionType", + "description": "A type of permission which can be granted for accessing a digital document.", + "type": "string", + "oneOf": [ + { + "description": "Permission to add comments to the document.", + "const": "CommentPermission" + }, + { + "description": "Permission to read or view the document.", + "const": "ReadPermission" + }, + { + "description": "Permission to write or edit the document.", + "const": "WritePermission" + } + ] +} diff --git a/registry/schema-org/DigitalPlatformEnumeration.schema.json b/registry/schema-org/DigitalPlatformEnumeration.schema.json new file mode 100644 index 0000000..8bd16cb --- /dev/null +++ b/registry/schema-org/DigitalPlatformEnumeration.schema.json @@ -0,0 +1,29 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:DigitalPlatformEnumeration", + "title": "DigitalPlatformEnumeration", + "description": "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). ", + "type": "string", + "oneOf": [ + { + "description": "Represents the broad notion of Android-based operating systems.", + "const": "AndroidPlatform" + }, + { + "description": "Represents the broad notion of 'desktop' browsers as a Web Platform.", + "const": "DesktopWebPlatform" + }, + { + "description": "Represents the generic notion of the Web Platform. More specific codes include [[MobileWebPlatform]] and [[DesktopWebPlatform]], as an incomplete list. ", + "const": "GenericWebPlatform" + }, + { + "description": "Represents the broad notion of iOS-based operating systems.", + "const": "IOSPlatform" + }, + { + "description": "Represents the broad notion of 'mobile' browsers as a Web Platform.", + "const": "MobileWebPlatform" + } + ] +} diff --git a/registry/schema-org/DisagreeAction.schema.json b/registry/schema-org/DisagreeAction.schema.json new file mode 100644 index 0000000..d3ec38e --- /dev/null +++ b/registry/schema-org/DisagreeAction.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:DisagreeAction", + "title": "DisagreeAction", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "The act of responding instinctively and emotionally to an object, expressing a sentiment.", + "$ref": "schema:ReactAction" + } + ] +} diff --git a/registry/schema-org/DiscoverAction.schema.json b/registry/schema-org/DiscoverAction.schema.json new file mode 100644 index 0000000..a6af476 --- /dev/null +++ b/registry/schema-org/DiscoverAction.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:DiscoverAction", + "title": "DiscoverAction", + "description": "The act of discovering/finding an object.", + "type": "object", + "allOf": [ + { + "description": "The act of finding an object.\\n\\nRelated actions:\\n\\n* [[SearchAction]]: FindAction is generally lead by a SearchAction, but not necessarily.", + "$ref": "schema:FindAction" + } + ] +} diff --git a/registry/schema-org/DiscussionForumPosting.schema.json b/registry/schema-org/DiscussionForumPosting.schema.json new file mode 100644 index 0000000..9fa47d1 --- /dev/null +++ b/registry/schema-org/DiscussionForumPosting.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:DiscussionForumPosting", + "title": "DiscussionForumPosting", + "description": "A posting to a discussion forum.", + "type": "object", + "allOf": [ + { + "description": "A post to a social media platform, including blog posts, tweets, Facebook posts, etc.", + "$ref": "schema:SocialMediaPosting" + } + ] +} diff --git a/registry/schema-org/DislikeAction.schema.json b/registry/schema-org/DislikeAction.schema.json new file mode 100644 index 0000000..7debcbb --- /dev/null +++ b/registry/schema-org/DislikeAction.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:DislikeAction", + "title": "DislikeAction", + "description": "The act of expressing a negative sentiment about the object. An agent dislikes an object (a proposition, topic or theme) with participants.", + "type": "object", + "allOf": [ + { + "description": "The act of responding instinctively and emotionally to an object, expressing a sentiment.", + "$ref": "schema:ReactAction" + } + ] +} diff --git a/registry/schema-org/Distance.schema.json b/registry/schema-org/Distance.schema.json new file mode 100644 index 0000000..503e44e --- /dev/null +++ b/registry/schema-org/Distance.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Distance", + "title": "Distance", + "description": "Properties that take Distances as values are of the form ' '. E.g., '7 ft'.", + "type": "object", + "allOf": [ + { + "description": "Quantities such as distance, time, mass, weight, etc. Particular instances of say Mass are entities like '3 kg' or '4 milligrams'.", + "$ref": "schema:Quantity" + } + ] +} diff --git a/registry/schema-org/Distillery.schema.json b/registry/schema-org/Distillery.schema.json new file mode 100644 index 0000000..18c883b --- /dev/null +++ b/registry/schema-org/Distillery.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Distillery", + "title": "Distillery", + "description": "A distillery.", + "type": "object", + "allOf": [ + { + "description": "A food-related business.", + "$ref": "schema:FoodEstablishment" + } + ] +} diff --git a/registry/schema-org/DonateAction.schema.json b/registry/schema-org/DonateAction.schema.json new file mode 100644 index 0000000..abd1576 --- /dev/null +++ b/registry/schema-org/DonateAction.schema.json @@ -0,0 +1,54 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:DonateAction", + "title": "DonateAction", + "description": "The act of providing goods, services, or money without compensation, often for philanthropic reasons.", + "type": "object", + "allOf": [ + { + "description": "The act of transferring/moving (abstract or concrete) animate or inanimate objects from one place to another.", + "$ref": "schema:TransferAction" + } + ], + "properties": { + "price": { + "description": "The offer price of a product, or of a price component when attached to PriceSpecification and its subtypes.\\n\\nUsage guidelines:\\n\\n* 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.\\n* Use '.' (Unicode 'FULL STOP' (U+002E)) rather than ',' to indicate a decimal point. Avoid using these symbols as a readability separator.\\n* 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.\\n* Use values from 0123456789 (Unicode 'DIGIT ZERO' (U+0030) to 'DIGIT NINE' (U+0039)) rather than superficially similar Unicode symbols.\n ", + "anyOf": [{ "type": "number" }, { "type": "string" }] + }, + "priceCurrency": { + "description": "The currency of the price, or a price component when attached to [[PriceSpecification]] and its subtypes.\\n\\nUse standard formats: [ISO 4217 currency format](http://en.wikipedia.org/wiki/ISO_4217), e.g. \"USD\"; [Ticker symbol](https://en.wikipedia.org/wiki/List_of_cryptocurrencies) for cryptocurrencies, e.g. \"BTC\"; well known names for [Local Exchange Trading Systems](https://en.wikipedia.org/wiki/Local_exchange_trading_system) (LETS) and other currency types, e.g. \"Ithaca HOUR\".", + "type": "string" + }, + "priceSpecification": { + "description": "One or more detailed price specifications, indicating the unit price and delivery or payment charges.", + "oneOf": [ + { "$ref": "schema:PriceSpecification" }, + { "type": "array", "items": { "$ref": "schema:PriceSpecification" } } + ] + }, + "recipient": { + "description": "A sub property of participant. The participant who is at the receiving end of the action.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:Audience" }, + { "$ref": "schema:ContactPoint" }, + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:Audience" }, + { "$ref": "schema:ContactPoint" }, + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + } + } + ] + } + } +} diff --git a/registry/schema-org/DoseSchedule.schema.json b/registry/schema-org/DoseSchedule.schema.json new file mode 100644 index 0000000..ee7db8c --- /dev/null +++ b/registry/schema-org/DoseSchedule.schema.json @@ -0,0 +1,34 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:DoseSchedule", + "title": "DoseSchedule", + "description": "A specific dosing schedule for a drug or supplement.", + "type": "object", + "allOf": [ + { + "description": "A utility class that serves as the umbrella for a number of 'intangible' things in the medical space.", + "$ref": "schema:MedicalIntangible" + } + ], + "properties": { + "doseUnit": { + "description": "The unit of the dose, e.g. 'mg'.", + "type": "string" + }, + "doseValue": { + "description": "The value of the dose, e.g. 500.", + "anyOf": [{ "type": "number" }, { "$ref": "schema:QualitativeValue" }] + }, + "frequency": { + "description": "How often the dose is taken, e.g. 'daily'.", + "type": "string" + }, + "targetPopulation": { + "description": "Characteristics of the population for which this is intended, or which typically uses it, e.g. 'adults'.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + } + } +} diff --git a/registry/schema-org/DownloadAction.schema.json b/registry/schema-org/DownloadAction.schema.json new file mode 100644 index 0000000..aa931fa --- /dev/null +++ b/registry/schema-org/DownloadAction.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:DownloadAction", + "title": "DownloadAction", + "description": "The act of downloading an object.", + "type": "object", + "allOf": [ + { + "description": "The act of transferring/moving (abstract or concrete) animate or inanimate objects from one place to another.", + "$ref": "schema:TransferAction" + } + ] +} diff --git a/registry/schema-org/DrawAction.schema.json b/registry/schema-org/DrawAction.schema.json new file mode 100644 index 0000000..79e8416 --- /dev/null +++ b/registry/schema-org/DrawAction.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:DrawAction", + "title": "DrawAction", + "description": "The act of producing a visual/graphical representation of an object, typically with a pen/pencil and paper as instruments.", + "type": "object", + "allOf": [ + { + "description": "The act of deliberately creating/producing/generating/building a result out of the agent.", + "$ref": "schema:CreateAction" + } + ] +} diff --git a/registry/schema-org/Drawing.schema.json b/registry/schema-org/Drawing.schema.json new file mode 100644 index 0000000..f8b37ff --- /dev/null +++ b/registry/schema-org/Drawing.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Drawing", + "title": "Drawing", + "description": "A picture or diagram made with a pencil, pen, or crayon rather than paint.", + "type": "object", + "allOf": [ + { + "description": "The most generic kind of creative work, including books, movies, photographs, software programs, etc.", + "$ref": "schema:CreativeWork" + } + ] +} diff --git a/registry/schema-org/DrinkAction.schema.json b/registry/schema-org/DrinkAction.schema.json new file mode 100644 index 0000000..7da8bb5 --- /dev/null +++ b/registry/schema-org/DrinkAction.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:DrinkAction", + "title": "DrinkAction", + "description": "The act of swallowing liquids.", + "type": "object", + "allOf": [ + { + "description": "The act of ingesting information/resources/food.", + "$ref": "schema:ConsumeAction" + } + ] +} diff --git a/registry/schema-org/DriveWheelConfigurationValue.schema.json b/registry/schema-org/DriveWheelConfigurationValue.schema.json new file mode 100644 index 0000000..d5987f2 --- /dev/null +++ b/registry/schema-org/DriveWheelConfigurationValue.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:DriveWheelConfigurationValue", + "title": "DriveWheelConfigurationValue", + "description": "A value indicating which roadwheels will receive torque.", + "type": "object", + "allOf": [ + { + "description": "A predefined value for a product characteristic, e.g. the power cord plug type 'US' or the garment sizes 'S', 'M', 'L', and 'XL'.", + "$ref": "schema:QualitativeValue" + } + ] +} diff --git a/registry/schema-org/Drug.schema.json b/registry/schema-org/Drug.schema.json new file mode 100644 index 0000000..cb88022 --- /dev/null +++ b/registry/schema-org/Drug.schema.json @@ -0,0 +1,175 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Drug", + "title": "Drug", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:Product" + }, + { + "description": "Any matter of defined composition that has discrete existence, whose origin may be biological, mineral or chemical.", + "$ref": "schema:Substance" + } + ], + "properties": { + "activeIngredient": { + "description": "An active ingredient, typically chemical compounds and/or biologic substances.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "administrationRoute": { + "description": "A route by which this drug may be administered, e.g. 'oral'.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "alcoholWarning": { + "description": "Any precaution, guidance, contraindication, etc. related to consumption of alcohol while taking this drug.", + "type": "string" + }, + "availableStrength": { + "description": "An available dosage strength for the drug.", + "oneOf": [ + { "$ref": "schema:DrugStrength" }, + { "type": "array", "items": { "$ref": "schema:DrugStrength" } } + ] + }, + "breastfeedingWarning": { + "description": "Any precaution, guidance, contraindication, etc. related to this drug's use by breastfeeding mothers.", + "type": "string" + }, + "clincalPharmacology": { + "description": "Description of the absorption and elimination of drugs, including their concentration (pharmacokinetics, pK) and biological effects (pharmacodynamics, pD).", + "type": "string" + }, + "clinicalPharmacology": { + "description": "Description of the absorption and elimination of drugs, including their concentration (pharmacokinetics, pK) and biological effects (pharmacodynamics, pD).", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "dosageForm": { + "description": "A dosage form in which this drug/supplement is available, e.g. 'tablet', 'suspension', 'injection'.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "doseSchedule": { + "description": "A dosing schedule for the drug for a given population, either observed, recommended, or maximum dose based on the type used.", + "oneOf": [ + { "$ref": "schema:DoseSchedule" }, + { "type": "array", "items": { "$ref": "schema:DoseSchedule" } } + ] + }, + "drugClass": { + "description": "The class of drug this belongs to (e.g., statins).", + "$ref": "schema:DrugClass" + }, + "drugUnit": { + "description": "The unit in which the drug is measured, e.g. '5 mg tablet'.", + "type": "string" + }, + "foodWarning": { + "description": "Any precaution, guidance, contraindication, etc. related to consumption of specific foods while taking this drug.", + "type": "string" + }, + "includedInHealthInsurancePlan": { + "description": "The insurance plans that cover this drug.", + "$ref": "schema:HealthInsurancePlan" + }, + "interactingDrug": { + "description": "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.", + "oneOf": [ + { "$ref": "schema:Drug" }, + { "type": "array", "items": { "$ref": "schema:Drug" } } + ] + }, + "isAvailableGenerically": { + "description": "True if the drug is available in a generic form (regardless of name).", + "type": "boolean" + }, + "isProprietary": { + "description": "True if this item's name is a proprietary/brand name (vs. generic name).", + "type": "boolean" + }, + "labelDetails": { + "description": "Link to the drug's label details.", + "type": "string", + "format": "uri" + }, + "legalStatus": { + "description": "The drug or supplement's legal status, including any controlled substance schedules that apply.", + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:DrugLegalStatus" }, + { "$ref": "schema:MedicalEnumeration" } + ] + }, + "maximumIntake": { + "description": "Recommended intake of this supplement for a given population as defined by a specific recommending authority.", + "$ref": "schema:MaximumDoseSchedule" + }, + "mechanismOfAction": { + "description": "The specific biochemical interaction through which this drug or supplement produces its pharmacological effect.", + "type": "string" + }, + "nonProprietaryName": { + "description": "The generic name of this drug or supplement.", + "type": "string" + }, + "overdosage": { + "description": "Any information related to overdose on a drug, including signs or symptoms, treatments, contact information for emergency response.", + "type": "string" + }, + "pregnancyCategory": { + "description": "Pregnancy category of this drug.", + "$ref": "schema:DrugPregnancyCategory" + }, + "pregnancyWarning": { + "description": "Any precaution, guidance, contraindication, etc. related to this drug's use during pregnancy.", + "type": "string" + }, + "prescribingInfo": { + "description": "Link to prescribing information for the drug.", + "type": "string", + "format": "uri" + }, + "prescriptionStatus": { + "description": "Indicates the status of drug prescription, e.g. local catalogs classifications or whether the drug is available by prescription or over-the-counter, etc.", + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:DrugPrescriptionStatus" } + ] + }, + "proprietaryName": { + "description": "Proprietary name given to the diet plan, typically by its originator or creator.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "relatedDrug": { + "description": "Any other drug related to this one, for example commonly-prescribed alternatives.", + "oneOf": [ + { "$ref": "schema:Drug" }, + { "type": "array", "items": { "$ref": "schema:Drug" } } + ] + }, + "rxcui": { + "description": "The RxCUI drug identifier from RXNORM.", + "type": "string" + }, + "warning": { + "description": "Any FDA or other warnings about the drug (text or URL).", + "anyOf": [{ "type": "string", "format": "uri" }, { "type": "string" }] + } + } +} diff --git a/registry/schema-org/DrugClass.schema.json b/registry/schema-org/DrugClass.schema.json new file mode 100644 index 0000000..14474be --- /dev/null +++ b/registry/schema-org/DrugClass.schema.json @@ -0,0 +1,22 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:DrugClass", + "title": "DrugClass", + "description": "A class of medical drugs, e.g., statins. Classes can represent general pharmacological class, common mechanisms of action, common physiological effects, etc.", + "type": "object", + "allOf": [ + { + "description": "The most generic type of entity related to health and the practice of medicine.", + "$ref": "schema:MedicalEntity" + } + ], + "properties": { + "drug": { + "description": "Specifying a drug or medicine used in a medication procedure.", + "oneOf": [ + { "$ref": "schema:Drug" }, + { "type": "array", "items": { "$ref": "schema:Drug" } } + ] + } + } +} diff --git a/registry/schema-org/DrugCost.schema.json b/registry/schema-org/DrugCost.schema.json new file mode 100644 index 0000000..c455f2b --- /dev/null +++ b/registry/schema-org/DrugCost.schema.json @@ -0,0 +1,43 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:DrugCost", + "title": "DrugCost", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "The most generic type of entity related to health and the practice of medicine.", + "$ref": "schema:MedicalEntity" + } + ], + "properties": { + "applicableLocation": { + "description": "The location in which the status applies.", + "$ref": "schema:AdministrativeArea" + }, + "costCategory": { + "description": "The category of cost, such as wholesale, retail, reimbursement cap, etc.", + "$ref": "schema:DrugCostCategory" + }, + "costCurrency": { + "description": "The currency (in 3-letter) of the drug cost. See: http://en.wikipedia.org/wiki/ISO_4217. ", + "type": "string" + }, + "costOrigin": { + "description": "Additional details to capture the origin of the cost data. For example, 'Medicare Part B'.", + "type": "string" + }, + "costPerUnit": { + "description": "The cost per unit of the drug.", + "anyOf": [ + { "type": "number" }, + { "type": "string" }, + { "$ref": "schema:QualitativeValue" } + ] + }, + "drugUnit": { + "description": "The unit in which the drug is measured, e.g. '5 mg tablet'.", + "type": "string" + } + } +} diff --git a/registry/schema-org/DrugCostCategory.schema.json b/registry/schema-org/DrugCostCategory.schema.json new file mode 100644 index 0000000..376dbe5 --- /dev/null +++ b/registry/schema-org/DrugCostCategory.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:DrugCostCategory", + "title": "DrugCostCategory", + "description": "Enumerated categories of medical drug costs.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:MedicalEnumeration" + } + ] +} diff --git a/registry/schema-org/DrugLegalStatus.schema.json b/registry/schema-org/DrugLegalStatus.schema.json new file mode 100644 index 0000000..582c492 --- /dev/null +++ b/registry/schema-org/DrugLegalStatus.schema.json @@ -0,0 +1,19 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:DrugLegalStatus", + "title": "DrugLegalStatus", + "description": "The legal availability status of a medical drug.", + "type": "object", + "allOf": [ + { + "description": "A utility class that serves as the umbrella for a number of 'intangible' things in the medical space.", + "$ref": "schema:MedicalIntangible" + } + ], + "properties": { + "applicableLocation": { + "description": "The location in which the status applies.", + "$ref": "schema:AdministrativeArea" + } + } +} diff --git a/registry/schema-org/DrugPregnancyCategory.schema.json b/registry/schema-org/DrugPregnancyCategory.schema.json new file mode 100644 index 0000000..4601580 --- /dev/null +++ b/registry/schema-org/DrugPregnancyCategory.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:DrugPregnancyCategory", + "title": "DrugPregnancyCategory", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:MedicalEnumeration" + } + ] +} diff --git a/registry/schema-org/DrugPrescriptionStatus.schema.json b/registry/schema-org/DrugPrescriptionStatus.schema.json new file mode 100644 index 0000000..938c53a --- /dev/null +++ b/registry/schema-org/DrugPrescriptionStatus.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:DrugPrescriptionStatus", + "title": "DrugPrescriptionStatus", + "description": "Indicates whether this drug is available by prescription or over-the-counter.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:MedicalEnumeration" + } + ] +} diff --git a/registry/schema-org/DrugStrength.schema.json b/registry/schema-org/DrugStrength.schema.json new file mode 100644 index 0000000..c38b1d5 --- /dev/null +++ b/registry/schema-org/DrugStrength.schema.json @@ -0,0 +1,38 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:DrugStrength", + "title": "DrugStrength", + "description": "A specific strength in which a medical drug is available in a specific country.", + "type": "object", + "allOf": [ + { + "description": "A utility class that serves as the umbrella for a number of 'intangible' things in the medical space.", + "$ref": "schema:MedicalIntangible" + } + ], + "properties": { + "activeIngredient": { + "description": "An active ingredient, typically chemical compounds and/or biologic substances.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "availableIn": { + "description": "The location in which the strength is available.", + "$ref": "schema:AdministrativeArea" + }, + "maximumIntake": { + "description": "Recommended intake of this supplement for a given population as defined by a specific recommending authority.", + "$ref": "schema:MaximumDoseSchedule" + }, + "strengthUnit": { + "description": "The units of an active ingredient's strength, e.g. mg.", + "type": "string" + }, + "strengthValue": { + "description": "The value of an active ingredient's strength, e.g. 325.", + "type": "number" + } + } +} diff --git a/registry/schema-org/DryCleaningOrLaundry.schema.json b/registry/schema-org/DryCleaningOrLaundry.schema.json new file mode 100644 index 0000000..023039b --- /dev/null +++ b/registry/schema-org/DryCleaningOrLaundry.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:DryCleaningOrLaundry", + "title": "DryCleaningOrLaundry", + "description": "A dry-cleaning business.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:LocalBusiness" + } + ] +} diff --git a/registry/schema-org/Duration.schema.json b/registry/schema-org/Duration.schema.json new file mode 100644 index 0000000..f0fe3f4 --- /dev/null +++ b/registry/schema-org/Duration.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Duration", + "title": "Duration", + "description": "Quantity: Duration (use [ISO 8601 duration format](http://en.wikipedia.org/wiki/ISO_8601)).", + "type": "object", + "allOf": [ + { + "description": "Quantities such as distance, time, mass, weight, etc. Particular instances of say Mass are entities like '3 kg' or '4 milligrams'.", + "$ref": "schema:Quantity" + } + ] +} diff --git a/registry/schema-org/EUEnergyEfficiencyEnumeration.schema.json b/registry/schema-org/EUEnergyEfficiencyEnumeration.schema.json new file mode 100644 index 0000000..79a9fac --- /dev/null +++ b/registry/schema-org/EUEnergyEfficiencyEnumeration.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:EUEnergyEfficiencyEnumeration", + "title": "EUEnergyEfficiencyEnumeration", + "description": "Enumerates the EU energy efficiency classes A-G as well as A+, A++, and A+++ as defined in EU directive 2017/1369.", + "type": "object", + "allOf": [ + { + "description": "Enumerates energy efficiency levels (also known as \"classes\" or \"ratings\") and certifications that are part of several international energy efficiency standards.", + "$ref": "schema:EnergyEfficiencyEnumeration" + } + ] +} diff --git a/registry/schema-org/EatAction.schema.json b/registry/schema-org/EatAction.schema.json new file mode 100644 index 0000000..a5e7bea --- /dev/null +++ b/registry/schema-org/EatAction.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:EatAction", + "title": "EatAction", + "description": "The act of swallowing solid objects.", + "type": "object", + "allOf": [ + { + "description": "The act of ingesting information/resources/food.", + "$ref": "schema:ConsumeAction" + } + ] +} diff --git a/registry/schema-org/EducationEvent.schema.json b/registry/schema-org/EducationEvent.schema.json new file mode 100644 index 0000000..88bbfbe --- /dev/null +++ b/registry/schema-org/EducationEvent.schema.json @@ -0,0 +1,31 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:EducationEvent", + "title": "EducationEvent", + "description": "Event type: Education event.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:Event" + } + ], + "properties": { + "assesses": { + "description": "The item being described is intended to assess the competency or learning outcome defined by the referenced term.", + "anyOf": [{ "type": "string" }, { "$ref": "schema:DefinedTerm" }] + }, + "educationalLevel": { + "description": "The level in terms of progression through an educational or training context. Examples of educational levels include 'beginner', 'intermediate' or 'advanced', and formal sets of level indicators.", + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:DefinedTerm" } + ] + }, + "teaches": { + "description": "The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.", + "anyOf": [{ "type": "string" }, { "$ref": "schema:DefinedTerm" }] + } + } +} diff --git a/registry/schema-org/EducationalAudience.schema.json b/registry/schema-org/EducationalAudience.schema.json new file mode 100644 index 0000000..074e6e1 --- /dev/null +++ b/registry/schema-org/EducationalAudience.schema.json @@ -0,0 +1,22 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:EducationalAudience", + "title": "EducationalAudience", + "description": "An EducationalAudience.", + "type": "object", + "allOf": [ + { + "description": "Intended audience for an item, i.e. the group for whom the item was created.", + "$ref": "schema:Audience" + } + ], + "properties": { + "educationalRole": { + "description": "An educationalRole of an EducationalAudience.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + } + } +} diff --git a/registry/schema-org/EducationalOccupationalCredential.schema.json b/registry/schema-org/EducationalOccupationalCredential.schema.json new file mode 100644 index 0000000..a516c45 --- /dev/null +++ b/registry/schema-org/EducationalOccupationalCredential.schema.json @@ -0,0 +1,69 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:EducationalOccupationalCredential", + "title": "EducationalOccupationalCredential", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "The most generic kind of creative work, including books, movies, photographs, software programs, etc.", + "$ref": "schema:CreativeWork" + } + ], + "properties": { + "competencyRequired": { + "description": "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.", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:DefinedTerm" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:DefinedTerm" } + ] + } + } + ] + }, + "credentialCategory": { + "description": "The category or type of credential being described, for example \"degree”, “certificate”, “badge”, or more specific term.", + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:DefinedTerm" } + ] + }, + "educationalLevel": { + "description": "The level in terms of progression through an educational or training context. Examples of educational levels include 'beginner', 'intermediate' or 'advanced', and formal sets of level indicators.", + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:DefinedTerm" } + ] + }, + "recognizedBy": { + "description": "An organization that acknowledges the validity, value or utility of a credential. Note: recognition may include a process of quality assurance or accreditation.", + "oneOf": [ + { "$ref": "schema:Organization" }, + { "type": "array", "items": { "$ref": "schema:Organization" } } + ] + }, + "validFor": { + "description": "The duration of validity of a permit or similar thing.", + "type": "string", + "$comment": "https://schema.org/Duration" + }, + "validIn": { + "description": "The geographic area where the item is valid. Applies for example to a [[Permit]], a [[Certification]], or an [[EducationalOccupationalCredential]]. ", + "$ref": "schema:AdministrativeArea" + } + } +} diff --git a/registry/schema-org/EducationalOccupationalProgram.schema.json b/registry/schema-org/EducationalOccupationalProgram.schema.json new file mode 100644 index 0000000..a3efefd --- /dev/null +++ b/registry/schema-org/EducationalOccupationalProgram.schema.json @@ -0,0 +1,216 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:EducationalOccupationalProgram", + "title": "EducationalOccupationalProgram", + "description": "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).", + "type": "object", + "allOf": [ + { + "description": "A utility class that serves as the umbrella for a number of 'intangible' things such as quantities, structured values, etc.", + "$ref": "schema:Intangible" + } + ], + "properties": { + "applicationDeadline": { + "description": "The date on which the program stops collecting applications for the next enrollment cycle. Flexible application deadlines (for example, a program with rolling admissions) can be described in a textual string, rather than as a DateTime.", + "anyOf": [{ "type": "string", "format": "date" }, { "type": "string" }] + }, + "applicationStartDate": { + "description": "The date at which the program begins collecting applications for the next enrollment cycle.", + "type": "string", + "format": "date" + }, + "dayOfWeek": { + "description": "The day of the week for which these opening hours are valid.", + "$ref": "schema:DayOfWeek" + }, + "educationalCredentialAwarded": { + "description": "A description of the qualification, award, certificate, diploma or other educational credential awarded as a consequence of successful completion of this course or program.", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:EducationalOccupationalCredential" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:EducationalOccupationalCredential" } + ] + } + } + ] + }, + "educationalProgramMode": { + "description": "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 ).", + "oneOf": [ + { + "anyOf": [{ "type": "string", "format": "uri" }, { "type": "string" }] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" } + ] + } + } + ] + }, + "endDate": { + "description": "The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).", + "anyOf": [ + { "type": "string", "format": "date" }, + { "type": "string", "format": "date-time" } + ] + }, + "financialAidEligible": { + "description": "A financial aid type or program which students may use to pay for tuition or fees associated with the program.", + "oneOf": [ + { "anyOf": [{ "type": "string" }, { "$ref": "schema:DefinedTerm" }] }, + { + "type": "array", + "items": { + "anyOf": [{ "type": "string" }, { "$ref": "schema:DefinedTerm" }] + } + } + ] + }, + "hasCourse": { + "description": "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.", + "oneOf": [ + { "$ref": "schema:Course" }, + { "type": "array", "items": { "$ref": "schema:Course" } } + ] + }, + "maximumEnrollment": { + "description": "The maximum number of students who may be enrolled in the program.", + "type": "integer" + }, + "numberOfCredits": { + "description": "The number of credits or units awarded by a Course or required to complete an EducationalOccupationalProgram.", + "anyOf": [{ "type": "integer" }, { "$ref": "schema:StructuredValue" }] + }, + "occupationalCategory": { + "description": "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.\\n\nNote: for historical reasons, any textual label and formal code provided as a literal may be assumed to be from O*NET-SOC.", + "oneOf": [ + { "anyOf": [{ "type": "string" }, { "$ref": "schema:CategoryCode" }] }, + { + "type": "array", + "items": { + "anyOf": [{ "type": "string" }, { "$ref": "schema:CategoryCode" }] + } + } + ] + }, + "occupationalCredentialAwarded": { + "description": "A description of the qualification, award, certificate, diploma or other occupational credential awarded as a consequence of successful completion of this course or program.", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:EducationalOccupationalCredential" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:EducationalOccupationalCredential" } + ] + } + } + ] + }, + "offers": { + "description": "An offer to provide this item—for example, an offer to sell a product, rent the DVD of a movie, perform a service, or give away tickets to an event. Use [[businessFunction]] to indicate the kind of transaction offered, i.e. sell, lease, etc. This property can also be used to describe a [[Demand]]. While this property is listed as expected on a number of common types, it can be used in others. In that case, using a second type, such as Product or a subtype of Product, can clarify the nature of the offer.\n ", + "oneOf": [ + { "anyOf": [{ "$ref": "schema:Demand" }, { "$ref": "schema:Offer" }] }, + { + "type": "array", + "items": { + "anyOf": [{ "$ref": "schema:Demand" }, { "$ref": "schema:Offer" }] + } + } + ] + }, + "programPrerequisites": { + "description": "Prerequisites for enrolling in the program.", + "oneOf": [ + { + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:AlignmentObject" }, + { "$ref": "schema:Course" }, + { "$ref": "schema:EducationalOccupationalCredential" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:AlignmentObject" }, + { "$ref": "schema:Course" }, + { "$ref": "schema:EducationalOccupationalCredential" } + ] + } + } + ] + }, + "programType": { + "description": "The type of educational or occupational program. For example, classroom, internship, alternance, etc.", + "anyOf": [{ "type": "string" }, { "$ref": "schema:DefinedTerm" }] + }, + "provider": { + "description": "The service provider, service operator, or service performer; the goods producer. Another party (a seller) may offer those services or goods on behalf of the provider. A provider may also serve as the seller.", + "anyOf": [{ "$ref": "schema:Organization" }, { "$ref": "schema:Person" }] + }, + "salaryUponCompletion": { + "description": "The expected salary upon completing the training.", + "$ref": "schema:MonetaryAmountDistribution" + }, + "startDate": { + "description": "The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).", + "anyOf": [ + { "type": "string", "format": "date" }, + { "type": "string", "format": "date-time" } + ] + }, + "termDuration": { + "description": "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.", + "type": "string", + "$comment": "https://schema.org/Duration" + }, + "termsPerYear": { + "description": "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.", + "type": "number" + }, + "timeOfDay": { + "description": "The time of day the program normally runs. For example, \"evenings\".", + "type": "string" + }, + "timeToComplete": { + "description": "The expected length of time to complete the program if attending full-time.", + "type": "string", + "$comment": "https://schema.org/Duration" + }, + "trainingSalary": { + "description": "The estimated salary earned while in the program.", + "$ref": "schema:MonetaryAmountDistribution" + }, + "typicalCreditsPerTerm": { + "description": "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.", + "anyOf": [{ "type": "integer" }, { "$ref": "schema:StructuredValue" }] + } + } +} diff --git a/registry/schema-org/EducationalOrganization.schema.json b/registry/schema-org/EducationalOrganization.schema.json new file mode 100644 index 0000000..3588c54 --- /dev/null +++ b/registry/schema-org/EducationalOrganization.schema.json @@ -0,0 +1,26 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:EducationalOrganization", + "title": "EducationalOrganization", + "description": "An educational organization.", + "type": "object", + "allOf": [ + { + "description": "A public structure, such as a town hall or concert hall.", + "$ref": "schema:CivicStructure" + }, + { + "description": "An organization such as a school, NGO, corporation, club, etc.", + "$ref": "schema:Organization" + } + ], + "properties": { + "alumni": { + "description": "Alumni of an organization.", + "oneOf": [ + { "$ref": "schema:Person" }, + { "type": "array", "items": { "$ref": "schema:Person" } } + ] + } + } +} diff --git a/registry/schema-org/Electrician.schema.json b/registry/schema-org/Electrician.schema.json new file mode 100644 index 0000000..df249ac --- /dev/null +++ b/registry/schema-org/Electrician.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Electrician", + "title": "Electrician", + "description": "An electrician.", + "type": "object", + "allOf": [ + { + "description": "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).", + "$ref": "schema:HomeAndConstructionBusiness" + } + ] +} diff --git a/registry/schema-org/ElectronicsStore.schema.json b/registry/schema-org/ElectronicsStore.schema.json new file mode 100644 index 0000000..95f3f4a --- /dev/null +++ b/registry/schema-org/ElectronicsStore.schema.json @@ -0,0 +1,8 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:ElectronicsStore", + "title": "ElectronicsStore", + "description": "An electronics store.", + "type": "object", + "allOf": [{ "description": "A retail good store.", "$ref": "schema:Store" }] +} diff --git a/registry/schema-org/ElementarySchool.schema.json b/registry/schema-org/ElementarySchool.schema.json new file mode 100644 index 0000000..e720f5b --- /dev/null +++ b/registry/schema-org/ElementarySchool.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:ElementarySchool", + "title": "ElementarySchool", + "description": "An elementary school.", + "type": "object", + "allOf": [ + { + "description": "An educational organization.", + "$ref": "schema:EducationalOrganization" + } + ] +} diff --git a/registry/schema-org/EmailMessage.schema.json b/registry/schema-org/EmailMessage.schema.json new file mode 100644 index 0000000..8fe9466 --- /dev/null +++ b/registry/schema-org/EmailMessage.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:EmailMessage", + "title": "EmailMessage", + "description": "An email message.", + "type": "object", + "allOf": [ + { + "description": "A single message from a sender to one or more organizations or people.", + "$ref": "schema:Message" + } + ] +} diff --git a/registry/schema-org/Embassy.schema.json b/registry/schema-org/Embassy.schema.json new file mode 100644 index 0000000..1337207 --- /dev/null +++ b/registry/schema-org/Embassy.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Embassy", + "title": "Embassy", + "description": "An embassy.", + "type": "object", + "allOf": [ + { + "description": "A government building.", + "$ref": "schema:GovernmentBuilding" + } + ] +} diff --git a/registry/schema-org/EmergencyService.schema.json b/registry/schema-org/EmergencyService.schema.json new file mode 100644 index 0000000..7b9f108 --- /dev/null +++ b/registry/schema-org/EmergencyService.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:EmergencyService", + "title": "EmergencyService", + "description": "An emergency service, such as a fire station or ER.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:LocalBusiness" + } + ] +} diff --git a/registry/schema-org/EmployeeRole.schema.json b/registry/schema-org/EmployeeRole.schema.json new file mode 100644 index 0000000..1e07963 --- /dev/null +++ b/registry/schema-org/EmployeeRole.schema.json @@ -0,0 +1,27 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:EmployeeRole", + "title": "EmployeeRole", + "description": "A subclass of OrganizationRole used to describe employee relationships.", + "type": "object", + "allOf": [ + { + "description": "A subclass of Role used to describe roles within organizations.", + "$ref": "schema:OrganizationRole" + } + ], + "properties": { + "baseSalary": { + "description": "The base salary of the job or of an employee in an EmployeeRole.", + "anyOf": [ + { "type": "number" }, + { "$ref": "schema:MonetaryAmount" }, + { "$ref": "schema:PriceSpecification" } + ] + }, + "salaryCurrency": { + "description": "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.", + "type": "string" + } + } +} diff --git a/registry/schema-org/EmployerAggregateRating.schema.json b/registry/schema-org/EmployerAggregateRating.schema.json new file mode 100644 index 0000000..bbe151c --- /dev/null +++ b/registry/schema-org/EmployerAggregateRating.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:EmployerAggregateRating", + "title": "EmployerAggregateRating", + "description": "An aggregate rating of an Organization related to its role as an employer.", + "type": "object", + "allOf": [ + { + "description": "The average rating based on multiple ratings or reviews.", + "$ref": "schema:AggregateRating" + } + ] +} diff --git a/registry/schema-org/EmployerReview.schema.json b/registry/schema-org/EmployerReview.schema.json new file mode 100644 index 0000000..fae4175 --- /dev/null +++ b/registry/schema-org/EmployerReview.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:EmployerReview", + "title": "EmployerReview", + "description": "An [[EmployerReview]] is a review of an [[Organization]] regarding its role as an employer, written by a current or former employee of that organization.", + "type": "object", + "allOf": [ + { + "description": "A review of an item - for example, of a restaurant, movie, or store.", + "$ref": "schema:Review" + } + ] +} diff --git a/registry/schema-org/EmploymentAgency.schema.json b/registry/schema-org/EmploymentAgency.schema.json new file mode 100644 index 0000000..fab4128 --- /dev/null +++ b/registry/schema-org/EmploymentAgency.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:EmploymentAgency", + "title": "EmploymentAgency", + "description": "An employment agency.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:LocalBusiness" + } + ] +} diff --git a/registry/schema-org/EndorseAction.schema.json b/registry/schema-org/EndorseAction.schema.json new file mode 100644 index 0000000..cd2dc7a --- /dev/null +++ b/registry/schema-org/EndorseAction.schema.json @@ -0,0 +1,35 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:EndorseAction", + "title": "EndorseAction", + "description": "An agent approves/certifies/likes/supports/sanctions an object.", + "type": "object", + "allOf": [ + { + "description": "The act of responding instinctively and emotionally to an object, expressing a sentiment.", + "$ref": "schema:ReactAction" + } + ], + "properties": { + "endorsee": { + "description": "A sub property of participant. The person/organization being supported.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + } + } + ] + } + } +} diff --git a/registry/schema-org/EndorsementRating.schema.json b/registry/schema-org/EndorsementRating.schema.json new file mode 100644 index 0000000..1c25c5d --- /dev/null +++ b/registry/schema-org/EndorsementRating.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:EndorsementRating", + "title": "EndorsementRating", + "description": "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.\n", + "type": "object", + "allOf": [ + { + "description": "A rating is an evaluation on a numeric scale, such as 1 to 5 stars.", + "$ref": "schema:Rating" + } + ] +} diff --git a/registry/schema-org/Energy.schema.json b/registry/schema-org/Energy.schema.json new file mode 100644 index 0000000..9b5f167 --- /dev/null +++ b/registry/schema-org/Energy.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Energy", + "title": "Energy", + "description": "Properties that take Energy as values are of the form ' '.", + "type": "object", + "allOf": [ + { + "description": "Quantities such as distance, time, mass, weight, etc. Particular instances of say Mass are entities like '3 kg' or '4 milligrams'.", + "$ref": "schema:Quantity" + } + ] +} diff --git a/registry/schema-org/EnergyConsumptionDetails.schema.json b/registry/schema-org/EnergyConsumptionDetails.schema.json new file mode 100644 index 0000000..c44de40 --- /dev/null +++ b/registry/schema-org/EnergyConsumptionDetails.schema.json @@ -0,0 +1,45 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:EnergyConsumptionDetails", + "title": "EnergyConsumptionDetails", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "A utility class that serves as the umbrella for a number of 'intangible' things such as quantities, structured values, etc.", + "$ref": "schema:Intangible" + } + ], + "properties": { + "energyEfficiencyScaleMax": { + "description": "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+++.", + "oneOf": [ + { "$ref": "schema:EUEnergyEfficiencyEnumeration" }, + { + "type": "array", + "items": { "$ref": "schema:EUEnergyEfficiencyEnumeration" } + } + ] + }, + "energyEfficiencyScaleMin": { + "description": "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+++.", + "oneOf": [ + { "$ref": "schema:EUEnergyEfficiencyEnumeration" }, + { + "type": "array", + "items": { "$ref": "schema:EUEnergyEfficiencyEnumeration" } + } + ] + }, + "hasEnergyEfficiencyCategory": { + "description": "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.", + "oneOf": [ + { "$ref": "schema:EnergyEfficiencyEnumeration" }, + { + "type": "array", + "items": { "$ref": "schema:EnergyEfficiencyEnumeration" } + } + ] + } + } +} diff --git a/registry/schema-org/EnergyEfficiencyEnumeration.schema.json b/registry/schema-org/EnergyEfficiencyEnumeration.schema.json new file mode 100644 index 0000000..06b469c --- /dev/null +++ b/registry/schema-org/EnergyEfficiencyEnumeration.schema.json @@ -0,0 +1,7 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:EnergyEfficiencyEnumeration", + "title": "EnergyEfficiencyEnumeration", + "description": "Enumerates energy efficiency levels (also known as \"classes\" or \"ratings\") and certifications that are part of several international energy efficiency standards.", + "type": "object" +} diff --git a/registry/schema-org/EnergyStarEnergyEfficiencyEnumeration.schema.json b/registry/schema-org/EnergyStarEnergyEfficiencyEnumeration.schema.json new file mode 100644 index 0000000..e5586e1 --- /dev/null +++ b/registry/schema-org/EnergyStarEnergyEfficiencyEnumeration.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:EnergyStarEnergyEfficiencyEnumeration", + "title": "EnergyStarEnergyEfficiencyEnumeration", + "description": "Used to indicate whether a product is EnergyStar certified.", + "type": "object", + "allOf": [ + { + "description": "Enumerates energy efficiency levels (also known as \"classes\" or \"ratings\") and certifications that are part of several international energy efficiency standards.", + "$ref": "schema:EnergyEfficiencyEnumeration" + } + ] +} diff --git a/registry/schema-org/EngineSpecification.schema.json b/registry/schema-org/EngineSpecification.schema.json new file mode 100644 index 0000000..3e6058a --- /dev/null +++ b/registry/schema-org/EngineSpecification.schema.json @@ -0,0 +1,43 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:EngineSpecification", + "title": "EngineSpecification", + "description": "Information about the engine of the vehicle. A vehicle can have multiple engines represented by multiple engine specification entities.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:StructuredValue" + } + ], + "properties": { + "engineDisplacement": { + "description": "The volume swept by all of the pistons inside the cylinders of an internal combustion engine in a single movement. \\n\\nTypical unit code(s): CMQ for cubic centimeter, LTR for liters, INQ for cubic inches\\n* Note 1: You can link to information about how the given value has been determined using the [[valueReference]] property.\\n* Note 2: You can use [[minValue]] and [[maxValue]] to indicate ranges.", + "$ref": "schema:QuantitativeValue" + }, + "enginePower": { + "description": "The power of the vehicle's engine.\n Typical unit code(s): KWT for kilowatt, BHP for brake horsepower, N12 for metric horsepower (PS, with 1 PS = 735,49875 W)\\n\\n* 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).\\n* Note 2: You can link to information about how the given value has been determined using the [[valueReference]] property.\\n* Note 3: You can use [[minValue]] and [[maxValue]] to indicate ranges.", + "$ref": "schema:QuantitativeValue" + }, + "engineType": { + "description": "The type of engine or engines powering the vehicle.", + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:QualitativeValue" } + ] + }, + "fuelType": { + "description": "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.", + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:QualitativeValue" } + ] + }, + "torque": { + "description": "The torque (turning force) of the vehicle's engine.\\n\\nTypical unit code(s): NU for newton metre (N m), F17 for pound-force per foot, or F48 for pound-force per inch\\n\\n* Note 1: You can link to information about how the given value has been determined (e.g. reference RPM) using the [[valueReference]] property.\\n* Note 2: You can use [[minValue]] and [[maxValue]] to indicate ranges.", + "$ref": "schema:QuantitativeValue" + } + } +} diff --git a/registry/schema-org/EntertainmentBusiness.schema.json b/registry/schema-org/EntertainmentBusiness.schema.json new file mode 100644 index 0000000..d654fab --- /dev/null +++ b/registry/schema-org/EntertainmentBusiness.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:EntertainmentBusiness", + "title": "EntertainmentBusiness", + "description": "A business providing entertainment.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:LocalBusiness" + } + ] +} diff --git a/registry/schema-org/EntryPoint.schema.json b/registry/schema-org/EntryPoint.schema.json new file mode 100644 index 0000000..b4c99a6 --- /dev/null +++ b/registry/schema-org/EntryPoint.schema.json @@ -0,0 +1,59 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:EntryPoint", + "title": "EntryPoint", + "description": "An entry point, within some Web-based protocol.", + "type": "object", + "allOf": [ + { + "description": "A utility class that serves as the umbrella for a number of 'intangible' things such as quantities, structured values, etc.", + "$ref": "schema:Intangible" + } + ], + "properties": { + "actionApplication": { + "description": "An application that can complete the request.", + "oneOf": [ + { "$ref": "schema:SoftwareApplication" }, + { "type": "array", "items": { "$ref": "schema:SoftwareApplication" } } + ] + }, + "actionPlatform": { + "description": "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.", + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:DigitalPlatformEnumeration" } + ] + }, + "application": { + "description": "An application that can complete the request.", + "oneOf": [ + { "$ref": "schema:SoftwareApplication" }, + { "type": "array", "items": { "$ref": "schema:SoftwareApplication" } } + ] + }, + "contentType": { + "description": "The supported content type(s) for an EntryPoint response.", + "type": "string" + }, + "encodingType": { + "description": "The supported encoding type(s) for an EntryPoint request.", + "type": "string" + }, + "httpMethod": { + "description": "An HTTP method that specifies the appropriate HTTP method for a request to an HTTP EntryPoint. Values are capitalized strings as used in HTTP.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "urlTemplate": { + "description": "An url template (RFC6570) that will be used to construct the target of the execution of the action.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + } + } +} diff --git a/registry/schema-org/Enumeration.schema.json b/registry/schema-org/Enumeration.schema.json new file mode 100644 index 0000000..025dbbc --- /dev/null +++ b/registry/schema-org/Enumeration.schema.json @@ -0,0 +1,37 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Enumeration", + "title": "Enumeration", + "description": "Lists or enumerations—for example, a list of cuisines or music genres, etc.", + "type": "object", + "allOf": [ + { + "description": "A utility class that serves as the umbrella for a number of 'intangible' things such as quantities, structured values, etc.", + "$ref": "schema:Intangible" + } + ], + "properties": { + "supersededBy": { + "description": "Relates a term (i.e. a property, class or enumeration) to one that supersedes it.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:Class" }, + { "$ref": "schema:Enumeration" }, + { "$ref": "schema:Property" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:Class" }, + { "$ref": "schema:Enumeration" }, + { "$ref": "schema:Property" } + ] + } + } + ] + } + } +} diff --git a/registry/schema-org/Episode.schema.json b/registry/schema-org/Episode.schema.json new file mode 100644 index 0000000..7ebf982 --- /dev/null +++ b/registry/schema-org/Episode.schema.json @@ -0,0 +1,84 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Episode", + "title": "Episode", + "description": "A media episode (e.g. TV, radio, video game) which can be part of a series or season.", + "type": "object", + "allOf": [ + { + "description": "The most generic kind of creative work, including books, movies, photographs, software programs, etc.", + "$ref": "schema:CreativeWork" + } + ], + "properties": { + "actor": { + "description": "An actor (individual or a group), 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.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:PerformingGroup" }, + { "$ref": "schema:Person" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:PerformingGroup" }, + { "$ref": "schema:Person" } + ] + } + } + ] + }, + "actors": { + "description": "An actor, e.g. in TV, radio, movie, video games etc. Actors can be associated with individual items or with a series, episode, clip.", + "oneOf": [ + { "$ref": "schema:Person" }, + { "type": "array", "items": { "$ref": "schema:Person" } } + ] + }, + "director": { + "description": "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.", + "$ref": "schema:Person" + }, + "directors": { + "description": "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.", + "oneOf": [ + { "$ref": "schema:Person" }, + { "type": "array", "items": { "$ref": "schema:Person" } } + ] + }, + "duration": { + "description": "The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 duration format](http://en.wikipedia.org/wiki/ISO_8601).", + "anyOf": [ + { "type": "string", "$comment": "https://schema.org/Duration" }, + { "$ref": "schema:QuantitativeValue" } + ] + }, + "episodeNumber": { + "description": "Position of the episode within an ordered group of episodes.", + "anyOf": [{ "type": "integer" }, { "type": "string" }] + }, + "musicBy": { + "description": "The composer of the soundtrack.", + "anyOf": [{ "$ref": "schema:MusicGroup" }, { "$ref": "schema:Person" }] + }, + "partOfSeason": { + "description": "The season to which this episode belongs.", + "$ref": "schema:CreativeWorkSeason" + }, + "partOfSeries": { + "description": "The series to which this episode or season belongs.", + "$ref": "schema:CreativeWorkSeries" + }, + "productionCompany": { + "description": "The production company or studio responsible for the item, e.g. series, video game, episode etc.", + "$ref": "schema:Organization" + }, + "trailer": { + "description": "The trailer of a movie or TV/radio series, season, episode, etc.", + "$ref": "schema:VideoObject" + } + } +} diff --git a/registry/schema-org/Event.schema.json b/registry/schema-org/Event.schema.json new file mode 100644 index 0000000..e7e18c2 --- /dev/null +++ b/registry/schema-org/Event.schema.json @@ -0,0 +1,379 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Event", + "title": "Event", + "description": "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.", + "type": "object", + "allOf": [ + { "description": "The most generic type of item.", "$ref": "schema:Thing" } + ], + "properties": { + "about": { + "description": "The subject matter of the content.", + "$ref": "schema:Thing" + }, + "actor": { + "description": "An actor (individual or a group), 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.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:PerformingGroup" }, + { "$ref": "schema:Person" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:PerformingGroup" }, + { "$ref": "schema:Person" } + ] + } + } + ] + }, + "aggregateRating": { + "description": "The overall rating, based on a collection of reviews or ratings, of the item.", + "$ref": "schema:AggregateRating" + }, + "attendee": { + "description": "A person or organization attending the event.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + } + } + ] + }, + "attendees": { + "description": "A person attending the event.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + } + } + ] + }, + "audience": { + "description": "An intended audience, i.e. a group for whom something was created.", + "$ref": "schema:Audience" + }, + "composer": { + "description": "The person or organization who wrote a composition, or who is the composer of a work performed at some event.", + "anyOf": [{ "$ref": "schema:Organization" }, { "$ref": "schema:Person" }] + }, + "contributor": { + "description": "A secondary contributor to the CreativeWork or Event.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + } + } + ] + }, + "director": { + "description": "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.", + "$ref": "schema:Person" + }, + "doorTime": { + "description": "The time admission will commence.", + "anyOf": [ + { "type": "string", "format": "date-time" }, + { "type": "string", "format": "time" } + ] + }, + "duration": { + "description": "The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 duration format](http://en.wikipedia.org/wiki/ISO_8601).", + "anyOf": [ + { "type": "string", "$comment": "https://schema.org/Duration" }, + { "$ref": "schema:QuantitativeValue" } + ] + }, + "endDate": { + "description": "The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).", + "anyOf": [ + { "type": "string", "format": "date" }, + { "type": "string", "format": "date-time" } + ] + }, + "eventAttendanceMode": { + "description": "The eventAttendanceMode of an event indicates whether it occurs online, offline, or a mix.", + "$ref": "schema:EventAttendanceModeEnumeration" + }, + "eventSchedule": { + "description": "Associates an [[Event]] with a [[Schedule]]. There are circumstances where it is preferable to share a schedule for a series of\n 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\n 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\n is associated with a [[Schedule]] using this property should not have [[startDate]] or [[endDate]] properties. These are instead defined within the associated\n [[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\n or seasons.", + "oneOf": [ + { "$ref": "schema:Schedule" }, + { "type": "array", "items": { "$ref": "schema:Schedule" } } + ] + }, + "eventStatus": { + "description": "An eventStatus of an event represents its status; particularly useful when an event is cancelled or rescheduled.", + "oneOf": [ + { "$ref": "schema:EventStatusType" }, + { "type": "array", "items": { "$ref": "schema:EventStatusType" } } + ] + }, + "funder": { + "description": "A person or organization that supports (sponsors) something through some kind of financial contribution.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + } + } + ] + }, + "funding": { + "description": "A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].", + "oneOf": [ + { "$ref": "schema:Grant" }, + { "type": "array", "items": { "$ref": "schema:Grant" } } + ] + }, + "inLanguage": { + "description": "The language of the content or performance or used in an action. Please use one of the language codes from the [IETF BCP 47 standard](http://tools.ietf.org/html/bcp47). See also [[availableLanguage]].", + "anyOf": [{ "type": "string" }, { "$ref": "schema:Language" }] + }, + "isAccessibleForFree": { + "description": "A flag to signal that the item, event, or place is accessible for free.", + "type": "boolean" + }, + "keywords": { + "description": "Keywords or tags used to describe some item. Multiple textual entries in a keywords list are typically delimited by commas, or by repeating the property.", + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:DefinedTerm" } + ] + }, + "location": { + "description": "The location of, for example, where an event is happening, where an organization is located, or where an action takes place.", + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:Place" }, + { "$ref": "schema:PostalAddress" }, + { "$ref": "schema:VirtualLocation" } + ] + }, + "maximumAttendeeCapacity": { + "description": "The total number of individuals that may attend an event or venue.", + "type": "integer" + }, + "maximumPhysicalAttendeeCapacity": { + "description": "The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OfflineEventAttendanceMode]] (or the offline aspects, in the case of a [[MixedEventAttendanceMode]]). ", + "type": "integer" + }, + "maximumVirtualAttendeeCapacity": { + "description": "The maximum virtual attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OnlineEventAttendanceMode]] (or the online aspects, in the case of a [[MixedEventAttendanceMode]]). ", + "type": "integer" + }, + "offers": { + "description": "An offer to provide this item—for example, an offer to sell a product, rent the DVD of a movie, perform a service, or give away tickets to an event. Use [[businessFunction]] to indicate the kind of transaction offered, i.e. sell, lease, etc. This property can also be used to describe a [[Demand]]. While this property is listed as expected on a number of common types, it can be used in others. In that case, using a second type, such as Product or a subtype of Product, can clarify the nature of the offer.\n ", + "oneOf": [ + { "anyOf": [{ "$ref": "schema:Demand" }, { "$ref": "schema:Offer" }] }, + { + "type": "array", + "items": { + "anyOf": [{ "$ref": "schema:Demand" }, { "$ref": "schema:Offer" }] + } + } + ] + }, + "organizer": { + "description": "An organizer of an Event.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + } + } + ] + }, + "performer": { + "description": "A performer at the event—for example, a presenter, musician, musical group or actor.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + } + } + ] + }, + "performers": { + "description": "The main performer or performers of the event—for example, a presenter, musician, or actor.", + "anyOf": [{ "$ref": "schema:Organization" }, { "$ref": "schema:Person" }] + }, + "previousStartDate": { + "description": "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.", + "oneOf": [ + { "type": "string", "format": "date" }, + { "type": "array", "items": { "type": "string", "format": "date" } } + ] + }, + "recordedIn": { + "description": "The CreativeWork that captured all or part of this Event.", + "$ref": "schema:CreativeWork" + }, + "remainingAttendeeCapacity": { + "description": "The number of attendee places for an event that remain unallocated.", + "type": "integer" + }, + "review": { + "description": "A review of the item.", + "oneOf": [ + { "$ref": "schema:Review" }, + { "type": "array", "items": { "$ref": "schema:Review" } } + ] + }, + "sponsor": { + "description": "A person or organization that supports a thing through a pledge, promise, or financial contribution. E.g. a sponsor of a Medical Study or a corporate sponsor of an event.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + } + } + ] + }, + "startDate": { + "description": "The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).", + "anyOf": [ + { "type": "string", "format": "date" }, + { "type": "string", "format": "date-time" } + ] + }, + "subEvent": { + "description": "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.", + "oneOf": [ + { "$ref": "schema:Event" }, + { "type": "array", "items": { "$ref": "schema:Event" } } + ] + }, + "subEvents": { + "description": "Events that are a part of this event. For example, a conference event includes many presentations, each subEvents of the conference.", + "oneOf": [ + { "$ref": "schema:Event" }, + { "type": "array", "items": { "$ref": "schema:Event" } } + ] + }, + "superEvent": { + "description": "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.", + "oneOf": [ + { "$ref": "schema:Event" }, + { "type": "array", "items": { "$ref": "schema:Event" } } + ] + }, + "translator": { + "description": "Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + } + } + ] + }, + "typicalAgeRange": { + "description": "The typical expected age range, e.g. '7-9', '11-'.", + "type": "string" + }, + "workFeatured": { + "description": "A work featured in some event, e.g. exhibited in an ExhibitionEvent.\n Specific subproperties are available for workPerformed (e.g. a play), or a workPresented (a Movie at a ScreeningEvent).", + "oneOf": [ + { "$ref": "schema:CreativeWork" }, + { "type": "array", "items": { "$ref": "schema:CreativeWork" } } + ] + }, + "workPerformed": { + "description": "A work performed in some event, for example a play performed in a TheaterEvent.", + "oneOf": [ + { "$ref": "schema:CreativeWork" }, + { "type": "array", "items": { "$ref": "schema:CreativeWork" } } + ] + } + } +} diff --git a/registry/schema-org/EventAttendanceModeEnumeration.schema.json b/registry/schema-org/EventAttendanceModeEnumeration.schema.json new file mode 100644 index 0000000..1039e81 --- /dev/null +++ b/registry/schema-org/EventAttendanceModeEnumeration.schema.json @@ -0,0 +1,21 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:EventAttendanceModeEnumeration", + "title": "EventAttendanceModeEnumeration", + "description": "An EventAttendanceModeEnumeration value is one of potentially several modes of organising an event, relating to whether it is online or offline.", + "type": "string", + "oneOf": [ + { + "description": "MixedEventAttendanceMode - an event that is conducted as a combination of both offline and online modes.", + "const": "MixedEventAttendanceMode" + }, + { + "description": "OfflineEventAttendanceMode - an event that is primarily conducted offline. ", + "const": "OfflineEventAttendanceMode" + }, + { + "description": "OnlineEventAttendanceMode - an event that is primarily conducted online. ", + "const": "OnlineEventAttendanceMode" + } + ] +} diff --git a/registry/schema-org/EventReservation.schema.json b/registry/schema-org/EventReservation.schema.json new file mode 100644 index 0000000..9a95340 --- /dev/null +++ b/registry/schema-org/EventReservation.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:EventReservation", + "title": "EventReservation", + "description": "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]].", + "type": "object", + "allOf": [ + { + "description": "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]].", + "$ref": "schema:Reservation" + } + ] +} diff --git a/registry/schema-org/EventSeries.schema.json b/registry/schema-org/EventSeries.schema.json new file mode 100644 index 0000000..5fa5745 --- /dev/null +++ b/registry/schema-org/EventSeries.schema.json @@ -0,0 +1,17 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:EventSeries", + "title": "EventSeries", + "description": "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 ", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:Event" + }, + { + "description": "A Series in schema.org is a group of related items, typically but not necessarily of the same kind. See also [[CreativeWorkSeries]], [[EventSeries]].", + "$ref": "schema:Series" + } + ] +} diff --git a/registry/schema-org/EventStatusType.schema.json b/registry/schema-org/EventStatusType.schema.json new file mode 100644 index 0000000..b4fbba0 --- /dev/null +++ b/registry/schema-org/EventStatusType.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:EventStatusType", + "title": "EventStatusType", + "description": "EventStatusType is an enumeration type whose instances represent several states that an Event may be in.", + "type": "object", + "allOf": [ + { + "description": "Lists or enumerations dealing with status types.", + "$ref": "schema:StatusEnumeration" + } + ] +} diff --git a/registry/schema-org/EventVenue.schema.json b/registry/schema-org/EventVenue.schema.json new file mode 100644 index 0000000..cbc9547 --- /dev/null +++ b/registry/schema-org/EventVenue.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:EventVenue", + "title": "EventVenue", + "description": "An event venue.", + "type": "object", + "allOf": [ + { + "description": "A public structure, such as a town hall or concert hall.", + "$ref": "schema:CivicStructure" + } + ] +} diff --git a/registry/schema-org/ExchangeRateSpecification.schema.json b/registry/schema-org/ExchangeRateSpecification.schema.json new file mode 100644 index 0000000..5127d43 --- /dev/null +++ b/registry/schema-org/ExchangeRateSpecification.schema.json @@ -0,0 +1,27 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:ExchangeRateSpecification", + "title": "ExchangeRateSpecification", + "description": "A structured value representing exchange rate.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:StructuredValue" + } + ], + "properties": { + "currency": { + "description": "The currency in which the monetary amount is expressed.\\n\\nUse standard formats: [ISO 4217 currency format](http://en.wikipedia.org/wiki/ISO_4217), e.g. \"USD\"; [Ticker symbol](https://en.wikipedia.org/wiki/List_of_cryptocurrencies) for cryptocurrencies, e.g. \"BTC\"; well known names for [Local Exchange Trading Systems](https://en.wikipedia.org/wiki/Local_exchange_trading_system) (LETS) and other currency types, e.g. \"Ithaca HOUR\".", + "type": "string" + }, + "currentExchangeRate": { + "description": "The current price of a currency.", + "$ref": "schema:UnitPriceSpecification" + }, + "exchangeRateSpread": { + "description": "The difference between the price at which a broker or other intermediary buys and sells foreign currency.", + "anyOf": [{ "type": "number" }, { "$ref": "schema:MonetaryAmount" }] + } + } +} diff --git a/registry/schema-org/ExerciseAction.schema.json b/registry/schema-org/ExerciseAction.schema.json new file mode 100644 index 0000000..0344073 --- /dev/null +++ b/registry/schema-org/ExerciseAction.schema.json @@ -0,0 +1,115 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:ExerciseAction", + "title": "ExerciseAction", + "description": "The act of participating in exertive activity for the purposes of improving health and fitness.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:PlayAction" + } + ], + "properties": { + "course": { + "description": "A sub property of location. The course where this action was taken.", + "oneOf": [ + { "$ref": "schema:Place" }, + { "type": "array", "items": { "$ref": "schema:Place" } } + ] + }, + "diet": { + "description": "A sub property of instrument. The diet used in this action.", + "oneOf": [ + { "$ref": "schema:Diet" }, + { "type": "array", "items": { "$ref": "schema:Diet" } } + ] + }, + "distance": { + "description": "The distance travelled, e.g. exercising or travelling.", + "oneOf": [ + { "type": "string", "$comment": "https://schema.org/Distance" }, + { + "type": "array", + "items": { + "type": "string", + "$comment": "https://schema.org/Distance" + } + } + ] + }, + "exerciseCourse": { + "description": "A sub property of location. The course where this action was taken.", + "oneOf": [ + { "$ref": "schema:Place" }, + { "type": "array", "items": { "$ref": "schema:Place" } } + ] + }, + "exercisePlan": { + "description": "A sub property of instrument. The exercise plan used on this action.", + "oneOf": [ + { "$ref": "schema:ExercisePlan" }, + { "type": "array", "items": { "$ref": "schema:ExercisePlan" } } + ] + }, + "exerciseRelatedDiet": { + "description": "A sub property of instrument. The diet used in this action.", + "oneOf": [ + { "$ref": "schema:Diet" }, + { "type": "array", "items": { "$ref": "schema:Diet" } } + ] + }, + "exerciseType": { + "description": "Type(s) of exercise or activity, such as strength training, flexibility training, aerobics, cardiac rehabilitation, etc.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "fromLocation": { + "description": "A sub property of location. The original location of the object or the agent before the action.", + "oneOf": [ + { "$ref": "schema:Place" }, + { "type": "array", "items": { "$ref": "schema:Place" } } + ] + }, + "opponent": { + "description": "A sub property of participant. The opponent on this action.", + "oneOf": [ + { "$ref": "schema:Person" }, + { "type": "array", "items": { "$ref": "schema:Person" } } + ] + }, + "sportsActivityLocation": { + "description": "A sub property of location. The sports activity location where this action occurred.", + "oneOf": [ + { "$ref": "schema:SportsActivityLocation" }, + { + "type": "array", + "items": { "$ref": "schema:SportsActivityLocation" } + } + ] + }, + "sportsEvent": { + "description": "A sub property of location. The sports event where this action occurred.", + "oneOf": [ + { "$ref": "schema:SportsEvent" }, + { "type": "array", "items": { "$ref": "schema:SportsEvent" } } + ] + }, + "sportsTeam": { + "description": "A sub property of participant. The sports team that participated on this action.", + "oneOf": [ + { "$ref": "schema:SportsTeam" }, + { "type": "array", "items": { "$ref": "schema:SportsTeam" } } + ] + }, + "toLocation": { + "description": "A sub property of location. The final location of the object or the agent after the action.", + "oneOf": [ + { "$ref": "schema:Place" }, + { "type": "array", "items": { "$ref": "schema:Place" } } + ] + } + } +} diff --git a/registry/schema-org/ExerciseGym.schema.json b/registry/schema-org/ExerciseGym.schema.json new file mode 100644 index 0000000..446bacc --- /dev/null +++ b/registry/schema-org/ExerciseGym.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:ExerciseGym", + "title": "ExerciseGym", + "description": "A gym.", + "type": "object", + "allOf": [ + { + "description": "A sports location, such as a playing field.", + "$ref": "schema:SportsActivityLocation" + } + ] +} diff --git a/registry/schema-org/ExercisePlan.schema.json b/registry/schema-org/ExercisePlan.schema.json new file mode 100644 index 0000000..2adb608 --- /dev/null +++ b/registry/schema-org/ExercisePlan.schema.json @@ -0,0 +1,64 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:ExercisePlan", + "title": "ExercisePlan", + "description": "Fitness-related activity designed for a specific health-related purpose, including defined exercise routines as well as activity prescribed by a clinician.", + "type": "object", + "allOf": [ + { + "description": "The most generic kind of creative work, including books, movies, photographs, software programs, etc.", + "$ref": "schema:CreativeWork" + }, + { + "description": "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.", + "$ref": "schema:PhysicalActivity" + } + ], + "properties": { + "activityDuration": { + "description": "Length of time to engage in the activity.", + "anyOf": [ + { "type": "string", "$comment": "https://schema.org/Duration" }, + { "$ref": "schema:QuantitativeValue" } + ] + }, + "activityFrequency": { + "description": "How often one should engage in the activity.", + "anyOf": [{ "type": "string" }, { "$ref": "schema:QuantitativeValue" }] + }, + "additionalVariable": { + "description": "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.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "exerciseType": { + "description": "Type(s) of exercise or activity, such as strength training, flexibility training, aerobics, cardiac rehabilitation, etc.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "intensity": { + "description": "Quantitative measure gauging the degree of force involved in the exercise, for example, heartbeats per minute. May include the velocity of the movement.", + "anyOf": [{ "type": "string" }, { "$ref": "schema:QuantitativeValue" }] + }, + "repetitions": { + "description": "Number of times one should repeat the activity.", + "type": "integer", + "minimum": 1 + }, + "restPeriods": { + "description": "How often one should break from the activity.", + "anyOf": [{ "type": "string" }, { "$ref": "schema:QuantitativeValue" }] + }, + "workload": { + "description": "Quantitative measure of the physiologic output of the exercise; also referred to as energy expenditure.", + "anyOf": [ + { "type": "string", "$comment": "https://schema.org/Energy" }, + { "$ref": "schema:QuantitativeValue" } + ] + } + } +} diff --git a/registry/schema-org/ExhibitionEvent.schema.json b/registry/schema-org/ExhibitionEvent.schema.json new file mode 100644 index 0000000..61db881 --- /dev/null +++ b/registry/schema-org/ExhibitionEvent.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:ExhibitionEvent", + "title": "ExhibitionEvent", + "description": "Event type: Exhibition event, e.g. at a museum, library, archive, tradeshow, ...", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:Event" + } + ] +} diff --git a/registry/schema-org/FAQPage.schema.json b/registry/schema-org/FAQPage.schema.json new file mode 100644 index 0000000..07182cf --- /dev/null +++ b/registry/schema-org/FAQPage.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:FAQPage", + "title": "FAQPage", + "description": "A [[FAQPage]] is a [[WebPage]] presenting one or more \"[Frequently asked questions](https://en.wikipedia.org/wiki/FAQ)\" (see also [[QAPage]]).", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:WebPage" + } + ] +} diff --git a/registry/schema-org/FMRadioChannel.schema.json b/registry/schema-org/FMRadioChannel.schema.json new file mode 100644 index 0000000..c96ec91 --- /dev/null +++ b/registry/schema-org/FMRadioChannel.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:FMRadioChannel", + "title": "FMRadioChannel", + "description": "A radio channel that uses FM.", + "type": "object", + "allOf": [ + { + "description": "A unique instance of a radio BroadcastService on a CableOrSatelliteService lineup.", + "$ref": "schema:RadioChannel" + } + ] +} diff --git a/registry/schema-org/FastFoodRestaurant.schema.json b/registry/schema-org/FastFoodRestaurant.schema.json new file mode 100644 index 0000000..6428498 --- /dev/null +++ b/registry/schema-org/FastFoodRestaurant.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:FastFoodRestaurant", + "title": "FastFoodRestaurant", + "description": "A fast-food restaurant.", + "type": "object", + "allOf": [ + { + "description": "A food-related business.", + "$ref": "schema:FoodEstablishment" + } + ] +} diff --git a/registry/schema-org/Festival.schema.json b/registry/schema-org/Festival.schema.json new file mode 100644 index 0000000..75fc1a5 --- /dev/null +++ b/registry/schema-org/Festival.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Festival", + "title": "Festival", + "description": "Event type: Festival.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:Event" + } + ] +} diff --git a/registry/schema-org/FilmAction.schema.json b/registry/schema-org/FilmAction.schema.json new file mode 100644 index 0000000..1dd7604 --- /dev/null +++ b/registry/schema-org/FilmAction.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:FilmAction", + "title": "FilmAction", + "description": "The act of capturing sound and moving images on film, video, or digitally.", + "type": "object", + "allOf": [ + { + "description": "The act of deliberately creating/producing/generating/building a result out of the agent.", + "$ref": "schema:CreateAction" + } + ] +} diff --git a/registry/schema-org/FinancialIncentive.schema.json b/registry/schema-org/FinancialIncentive.schema.json new file mode 100644 index 0000000..401076b --- /dev/null +++ b/registry/schema-org/FinancialIncentive.schema.json @@ -0,0 +1,122 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:FinancialIncentive", + "title": "FinancialIncentive", + "description": "Represents financial incentives for goods/services offered by an organization (or individual).\n\nTypically contains the [[name]] of the incentive, the [[incentivizedItem]], the [[incentiveAmount]], the [[incentiveStatus]], [[incentiveType]], the [[provider]] of the incentive, and [[eligibleWithSupplier]].\n\nOptionally contains criteria on whether the incentive is limited based on [[purchaseType]], [[purchasePriceLimit]], [[incomeLimit]], and the [[qualifiedExpense]].\n ", + "type": "object", + "allOf": [ + { + "description": "A utility class that serves as the umbrella for a number of 'intangible' things such as quantities, structured values, etc.", + "$ref": "schema:Intangible" + } + ], + "properties": { + "areaServed": { + "description": "The geographic area where a service or offered item is provided.", + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:AdministrativeArea" }, + { "$ref": "schema:GeoShape" }, + { "$ref": "schema:Place" } + ] + }, + "eligibleWithSupplier": { + "description": "The supplier of the incentivized item/service for which the incentive is valid for such as a utility company, merchant, or contractor.", + "$ref": "schema:Organization" + }, + "incentiveAmount": { + "description": "Describes the amount that can be redeemed from this incentive.\n \n[[QuantitativeValue]]: Use this for incentives based on price (either raw amount or percentage-based). For a raw amount example, \"You can claim $2,500 - $7,500 from the total cost of installation\" would be represented as the following:\n {\n \"@type\": \"QuantitativeValue\",\n “minValue”: 2500,\n “maxValue”: 7500,\n \"unitCode\": \"USD\"\n }\n[[QuantitivateValue]] can also be used for percentage amounts. In such cases, value is used to represent the incentive’s percentage, while maxValue represents a limit (if one exists) to that incentive. The unitCode should be 'P1' and the unitText should be '%', while valueReference should be used for holding the currency type. For example, \"You can claim up to 30% of the total cost of installation, up to a maximum of $7,500\" would be:\n {\n \"@type\": \"QuantitativeValue\",\n \"value\": 30,\n \"unitCode\": \"P1\",\n \"unitText\": \"%\",\n “maxValue”: 7500,\n “valueReference”: “USD”\n }\n[[UnitPriceSpecification]]: Use this for incentives that are based on amounts rather than price. For example, a net metering rebate that pays $10/kWh, up to $1,000:\n {\n \"@type\": \"UnitPriceSpecification\",\n \"price\": 10,\n \"priceCurrency\": \"USD\",\n \"referenceQuantity\": 1,\n \"unitCode\": \"DO3\",\n \"unitText\": \"kw/h\",\n \"maxPrice\": 1000,\n \"description\": \"$10 / kwh up to $1000\"\n }\n[[LoanOrCredit]]: Use for incentives that are loan based. For example, a loan of $4,000 - $50,000 with a repayment term of 10 years, interest free would look like:\n {\n \"@type\": \"LoanOrCredit\",\n \"loanTerm\": {\n \"@type\":\"QuantitativeValue\",\n \"value\":\"10\",\n \"unitCode\": \"ANN\"\n },\n \"amount\":[\n {\n \"@type\": \"QuantitativeValue\",\n \"Name\":\"fixed interest rate\",\n \"value\":\"0\",\n },\n ],\n \"amount\":[\n {\n \"@type\": \"MonetaryAmount\",\n \"Name\":\"min loan amount\",\n \"value\":\"4000\",\n \"currency\":\"CAD\"\n },\n {\n \"@type\": \"MonetaryAmount\",\n \"Name\":\"max loan amount\",\n \"value\":\"50000\",\n \"currency\":\"CAD\"\n }\n ],\n }\n\nIn summary: Use [[QuantitativeValue]] for absolute/percentage-based incentives applied on the price of a good/service.\nUse [[UnitPriceSpecification]] for incentives based on a per-unit basis (e.g. net metering).\nUse [[LoanOrCredit]] for loans/credits.\n.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:LoanOrCredit" }, + { "$ref": "schema:QuantitativeValue" }, + { "$ref": "schema:UnitPriceSpecification" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:LoanOrCredit" }, + { "$ref": "schema:QuantitativeValue" }, + { "$ref": "schema:UnitPriceSpecification" } + ] + } + } + ] + }, + "incentiveStatus": { + "description": "The status of the incentive (active, on hold, retired, etc.).", + "$ref": "schema:IncentiveStatus" + }, + "incentiveType": { + "description": "The type of incentive offered (tax credit/rebate, tax deduction, tax waiver, subsidies, etc.).", + "$ref": "schema:IncentiveType" + }, + "incentivizedItem": { + "description": "The type or specific product(s) and/or service(s) being incentivized.\nDefinedTermSets are used for product and service categories such as the United Nations Standard Products and Services Code:\n {\n \"@type\": \"DefinedTerm\",\n \"inDefinedTermSet\": \"https://www.unspsc.org/\",\n \"termCode\": \"261315XX\",\n \"name\": \"Photovoltaic module\"\n }\n\nFor a specific product or service, use the Product type:\n {\n \"@type\": \"Product\",\n \"name\": \"Kenmore White 17\" Microwave\",\n }\nFor multiple different incentivized items, use multiple [[DefinedTerm]] or [[Product]].", + "anyOf": [{ "$ref": "schema:DefinedTerm" }, { "$ref": "schema:Product" }] + }, + "incomeLimit": { + "description": "Optional. Income limit for which the incentive is applicable for.\n \nIf MonetaryAmount is specified, this should be based on annualized income (e.g. if an incentive is limited to those making <$114,000 annually):\n {\n \"@type\": \"MonetaryAmount\",\n \"maxValue\": 114000,\n \"currency\": \"USD\",\n }\n\nUse Text for incentives that are limited based on other criteria, for example if an incentive is only available to recipients making 120% of the median poverty income in their area.", + "oneOf": [ + { + "anyOf": [{ "type": "string" }, { "$ref": "schema:MonetaryAmount" }] + }, + { + "type": "array", + "items": { + "anyOf": [{ "type": "string" }, { "$ref": "schema:MonetaryAmount" }] + } + } + ] + }, + "provider": { + "description": "The service provider, service operator, or service performer; the goods producer. Another party (a seller) may offer those services or goods on behalf of the provider. A provider may also serve as the seller.", + "anyOf": [{ "$ref": "schema:Organization" }, { "$ref": "schema:Person" }] + }, + "publisher": { + "description": "The publisher of the article in question.", + "anyOf": [{ "$ref": "schema:Organization" }, { "$ref": "schema:Person" }] + }, + "purchasePriceLimit": { + "description": "Optional. The maximum price the item can have and still qualify for this offer.", + "oneOf": [ + { "$ref": "schema:MonetaryAmount" }, + { "type": "array", "items": { "$ref": "schema:MonetaryAmount" } } + ] + }, + "purchaseType": { + "description": "Optional. The type of purchase the consumer must make in order to qualify for this incentive.", + "oneOf": [ + { "$ref": "schema:PurchaseType" }, + { "type": "array", "items": { "$ref": "schema:PurchaseType" } } + ] + }, + "qualifiedExpense": { + "description": "Optional. The types of expenses that are covered by the incentive. For example some incentives are only for the goods (tangible items) but the services (labor) are excluded.", + "oneOf": [ + { "$ref": "schema:IncentiveQualifiedExpenseType" }, + { + "type": "array", + "items": { "$ref": "schema:IncentiveQualifiedExpenseType" } + } + ] + }, + "validFrom": { + "description": "The date when the item becomes valid.", + "anyOf": [ + { "type": "string", "format": "date" }, + { "type": "string", "format": "date-time" } + ] + }, + "validThrough": { + "description": "The date after when the item is not valid. For example the end of an offer, salary period, or a period of opening hours.", + "anyOf": [ + { "type": "string", "format": "date" }, + { "type": "string", "format": "date-time" } + ] + } + } +} diff --git a/registry/schema-org/FinancialProduct.schema.json b/registry/schema-org/FinancialProduct.schema.json new file mode 100644 index 0000000..67a49f2 --- /dev/null +++ b/registry/schema-org/FinancialProduct.schema.json @@ -0,0 +1,40 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:FinancialProduct", + "title": "FinancialProduct", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "A service provided by an organization, e.g. delivery service, print services, etc.", + "$ref": "schema:Service" + } + ], + "properties": { + "annualPercentageRate": { + "description": "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.", + "anyOf": [{ "type": "number" }, { "$ref": "schema:QuantitativeValue" }] + }, + "feesAndCommissionsSpecification": { + "description": "Description of fees, commissions, and other terms applied either to a class of financial product, or by a financial service organization.", + "oneOf": [ + { + "anyOf": [{ "type": "string", "format": "uri" }, { "type": "string" }] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" } + ] + } + } + ] + }, + "interestRate": { + "description": "The interest rate, charged or paid, applicable to the financial product. Note: This is different from the calculated annualPercentageRate.", + "anyOf": [{ "type": "number" }, { "$ref": "schema:QuantitativeValue" }] + } + } +} diff --git a/registry/schema-org/FinancialService.schema.json b/registry/schema-org/FinancialService.schema.json new file mode 100644 index 0000000..8fd2b22 --- /dev/null +++ b/registry/schema-org/FinancialService.schema.json @@ -0,0 +1,32 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:FinancialService", + "title": "FinancialService", + "description": "Financial services business.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:LocalBusiness" + } + ], + "properties": { + "feesAndCommissionsSpecification": { + "description": "Description of fees, commissions, and other terms applied either to a class of financial product, or by a financial service organization.", + "oneOf": [ + { + "anyOf": [{ "type": "string", "format": "uri" }, { "type": "string" }] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" } + ] + } + } + ] + } + } +} diff --git a/registry/schema-org/FindAction.schema.json b/registry/schema-org/FindAction.schema.json new file mode 100644 index 0000000..a031ded --- /dev/null +++ b/registry/schema-org/FindAction.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:FindAction", + "title": "FindAction", + "description": "The act of finding an object.\\n\\nRelated actions:\\n\\n* [[SearchAction]]: FindAction is generally lead by a SearchAction, but not necessarily.", + "type": "object", + "allOf": [ + { + "description": "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).", + "$ref": "schema:Action" + } + ] +} diff --git a/registry/schema-org/FireStation.schema.json b/registry/schema-org/FireStation.schema.json new file mode 100644 index 0000000..7becca6 --- /dev/null +++ b/registry/schema-org/FireStation.schema.json @@ -0,0 +1,17 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:FireStation", + "title": "FireStation", + "description": "A fire station. With firemen.", + "type": "object", + "allOf": [ + { + "description": "A public structure, such as a town hall or concert hall.", + "$ref": "schema:CivicStructure" + }, + { + "description": "An emergency service, such as a fire station or ER.", + "$ref": "schema:EmergencyService" + } + ] +} diff --git a/registry/schema-org/Flight.schema.json b/registry/schema-org/Flight.schema.json new file mode 100644 index 0000000..8eaca38 --- /dev/null +++ b/registry/schema-org/Flight.schema.json @@ -0,0 +1,97 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Flight", + "title": "Flight", + "description": "An airline flight.", + "type": "object", + "allOf": [ + { + "description": "A trip or journey. An itinerary of visits to one or more places.", + "$ref": "schema:Trip" + } + ], + "properties": { + "aircraft": { + "description": "The kind of aircraft (e.g., \"Boeing 747\").", + "anyOf": [{ "type": "string" }, { "$ref": "schema:Vehicle" }] + }, + "arrivalAirport": { + "description": "The airport where the flight terminates.", + "$ref": "schema:Airport" + }, + "arrivalGate": { + "description": "Identifier of the flight's arrival gate.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "arrivalTerminal": { + "description": "Identifier of the flight's arrival terminal.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "boardingPolicy": { + "description": "The type of boarding policy used by the airline (e.g. zone-based or group-based).", + "$ref": "schema:BoardingPolicyType" + }, + "carrier": { + "description": "'carrier' is an out-dated term indicating the 'provider' for parcel delivery and flights.", + "$ref": "schema:Organization" + }, + "departureAirport": { + "description": "The airport where the flight originates.", + "$ref": "schema:Airport" + }, + "departureGate": { + "description": "Identifier of the flight's departure gate.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "departureTerminal": { + "description": "Identifier of the flight's departure terminal.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "estimatedFlightDuration": { + "description": "The estimated time the flight will take.", + "anyOf": [ + { "type": "string", "$comment": "https://schema.org/Duration" }, + { "type": "string" } + ] + }, + "flightDistance": { + "description": "The distance of the flight.", + "anyOf": [ + { "type": "string", "$comment": "https://schema.org/Distance" }, + { "type": "string" } + ] + }, + "flightNumber": { + "description": "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'.", + "type": "string" + }, + "mealService": { + "description": "Description of the meals that will be provided or available for purchase.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "seller": { + "description": "An entity which offers (sells / leases / lends / loans) the services / goods. A seller may also be a provider.", + "anyOf": [{ "$ref": "schema:Organization" }, { "$ref": "schema:Person" }] + }, + "webCheckinTime": { + "description": "The time when a passenger can check into the flight online.", + "type": "string", + "format": "date-time" + } + } +} diff --git a/registry/schema-org/FlightReservation.schema.json b/registry/schema-org/FlightReservation.schema.json new file mode 100644 index 0000000..ce39533 --- /dev/null +++ b/registry/schema-org/FlightReservation.schema.json @@ -0,0 +1,31 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:FlightReservation", + "title": "FlightReservation", + "description": "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]].", + "type": "object", + "allOf": [ + { + "description": "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]].", + "$ref": "schema:Reservation" + } + ], + "properties": { + "boardingGroup": { + "description": "The airline-specific indicator of boarding order / preference.", + "type": "string" + }, + "passengerPriorityStatus": { + "description": "The priority status assigned to a passenger for security or boarding (e.g. FastTrack or Priority).", + "anyOf": [{ "type": "string" }, { "$ref": "schema:QualitativeValue" }] + }, + "passengerSequenceNumber": { + "description": "The passenger's sequence number as assigned by the airline.", + "type": "string" + }, + "securityScreening": { + "description": "The type of security screening the passenger is subject to.", + "type": "string" + } + } +} diff --git a/registry/schema-org/Float.schema.json b/registry/schema-org/Float.schema.json new file mode 100644 index 0000000..cb8fa0a --- /dev/null +++ b/registry/schema-org/Float.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Float", + "title": "Float", + "description": "Data type: Floating number.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:Number" + } + ] +} diff --git a/registry/schema-org/FloorPlan.schema.json b/registry/schema-org/FloorPlan.schema.json new file mode 100644 index 0000000..8d64170 --- /dev/null +++ b/registry/schema-org/FloorPlan.schema.json @@ -0,0 +1,100 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:FloorPlan", + "title": "FloorPlan", + "description": "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]]. ", + "type": "object", + "allOf": [ + { + "description": "A utility class that serves as the umbrella for a number of 'intangible' things such as quantities, structured values, etc.", + "$ref": "schema:Intangible" + } + ], + "properties": { + "amenityFeature": { + "description": "An amenity feature (e.g. a characteristic or service) of the Accommodation. This generic property does not make a statement about whether the feature is included in an offer for the main accommodation or available at extra costs.", + "oneOf": [ + { "$ref": "schema:LocationFeatureSpecification" }, + { + "type": "array", + "items": { "$ref": "schema:LocationFeatureSpecification" } + } + ] + }, + "floorSize": { + "description": "The size of the accommodation, e.g. in square meter or squarefoot.\nTypical unit code(s): MTK for square meter, FTK for square foot, or YDK for square yard.", + "$ref": "schema:QuantitativeValue" + }, + "isPlanForApartment": { + "description": "Indicates some accommodation that this floor plan describes.", + "oneOf": [ + { "$ref": "schema:Accommodation" }, + { "type": "array", "items": { "$ref": "schema:Accommodation" } } + ] + }, + "layoutImage": { + "description": "A schematic image showing the floorplan layout.", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:ImageObject" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:ImageObject" } + ] + } + } + ] + }, + "numberOfAccommodationUnits": { + "description": "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]].", + "oneOf": [ + { "$ref": "schema:QuantitativeValue" }, + { "type": "array", "items": { "$ref": "schema:QuantitativeValue" } } + ] + }, + "numberOfAvailableAccommodationUnits": { + "description": "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]].", + "oneOf": [ + { "$ref": "schema:QuantitativeValue" }, + { "type": "array", "items": { "$ref": "schema:QuantitativeValue" } } + ] + }, + "numberOfBathroomsTotal": { + "description": "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]].", + "type": "integer" + }, + "numberOfBedrooms": { + "description": "The total integer number of bedrooms in a some [[Accommodation]], [[ApartmentComplex]] or [[FloorPlan]].", + "anyOf": [{ "type": "number" }, { "$ref": "schema:QuantitativeValue" }] + }, + "numberOfFullBathrooms": { + "description": "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).", + "oneOf": [ + { "type": "number" }, + { "type": "array", "items": { "type": "number" } } + ] + }, + "numberOfPartialBathrooms": { + "description": "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). ", + "oneOf": [ + { "type": "number" }, + { "type": "array", "items": { "type": "number" } } + ] + }, + "numberOfRooms": { + "description": "The number of rooms (excluding bathrooms and closets) of the accommodation or lodging business.\nTypical 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.", + "anyOf": [{ "type": "number" }, { "$ref": "schema:QuantitativeValue" }] + }, + "petsAllowed": { + "description": "Indicates whether pets are allowed to enter the accommodation or lodging business. More detailed information can be put in a text value.", + "anyOf": [{ "type": "boolean" }, { "type": "string" }] + } + } +} diff --git a/registry/schema-org/Florist.schema.json b/registry/schema-org/Florist.schema.json new file mode 100644 index 0000000..3409788 --- /dev/null +++ b/registry/schema-org/Florist.schema.json @@ -0,0 +1,8 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Florist", + "title": "Florist", + "description": "A florist.", + "type": "object", + "allOf": [{ "description": "A retail good store.", "$ref": "schema:Store" }] +} diff --git a/registry/schema-org/FollowAction.schema.json b/registry/schema-org/FollowAction.schema.json new file mode 100644 index 0000000..74f3595 --- /dev/null +++ b/registry/schema-org/FollowAction.schema.json @@ -0,0 +1,35 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:FollowAction", + "title": "FollowAction", + "description": "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).", + "type": "object", + "allOf": [ + { + "description": "The act of interacting with another person or organization.", + "$ref": "schema:InteractAction" + } + ], + "properties": { + "followee": { + "description": "A sub property of object. The person or organization being followed.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + } + } + ] + } + } +} diff --git a/registry/schema-org/FoodEstablishment.schema.json b/registry/schema-org/FoodEstablishment.schema.json new file mode 100644 index 0000000..47d923e --- /dev/null +++ b/registry/schema-org/FoodEstablishment.schema.json @@ -0,0 +1,64 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:FoodEstablishment", + "title": "FoodEstablishment", + "description": "A food-related business.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:LocalBusiness" + } + ], + "properties": { + "acceptsReservations": { + "description": "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```.", + "anyOf": [ + { "type": "boolean" }, + { "type": "string", "format": "uri" }, + { "type": "string", "enum": ["Yes", "No"] } + ] + }, + "hasMenu": { + "description": "Either the actual menu as a structured representation, as text, or a URL of the menu.", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:Menu" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:Menu" } + ] + } + } + ] + }, + "menu": { + "description": "Either the actual menu as a structured representation, as text, or a URL of the menu.", + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:Menu" } + ] + }, + "servesCuisine": { + "description": "The cuisine of the restaurant.", + "type": "string" + }, + "starRating": { + "description": "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).", + "oneOf": [ + { "$ref": "schema:Rating" }, + { "type": "array", "items": { "$ref": "schema:Rating" } } + ] + } + } +} diff --git a/registry/schema-org/FoodEstablishmentReservation.schema.json b/registry/schema-org/FoodEstablishmentReservation.schema.json new file mode 100644 index 0000000..c488e58 --- /dev/null +++ b/registry/schema-org/FoodEstablishmentReservation.schema.json @@ -0,0 +1,49 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:FoodEstablishmentReservation", + "title": "FoodEstablishmentReservation", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "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]].", + "$ref": "schema:Reservation" + } + ], + "properties": { + "endTime": { + "description": "The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it's the time offset of the end of a clip within a larger file.\\n\\nNote that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.", + "anyOf": [ + { "type": "string", "format": "date-time" }, + { "type": "string", "format": "time" } + ] + }, + "partySize": { + "description": "Number of people the reservation should accommodate.", + "oneOf": [ + { + "anyOf": [ + { "type": "integer" }, + { "$ref": "schema:QuantitativeValue" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "integer" }, + { "$ref": "schema:QuantitativeValue" } + ] + } + } + ] + }, + "startTime": { + "description": "The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it's the time offset of the start of a clip within a larger file.\\n\\nNote that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.", + "anyOf": [ + { "type": "string", "format": "date-time" }, + { "type": "string", "format": "time" } + ] + } + } +} diff --git a/registry/schema-org/FoodEvent.schema.json b/registry/schema-org/FoodEvent.schema.json new file mode 100644 index 0000000..28e5960 --- /dev/null +++ b/registry/schema-org/FoodEvent.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:FoodEvent", + "title": "FoodEvent", + "description": "Event type: Food event.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:Event" + } + ] +} diff --git a/registry/schema-org/FoodService.schema.json b/registry/schema-org/FoodService.schema.json new file mode 100644 index 0000000..bdc36fc --- /dev/null +++ b/registry/schema-org/FoodService.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:FoodService", + "title": "FoodService", + "description": "A food service, like breakfast, lunch, or dinner.", + "type": "object", + "allOf": [ + { + "description": "A service provided by an organization, e.g. delivery service, print services, etc.", + "$ref": "schema:Service" + } + ] +} diff --git a/registry/schema-org/FulfillmentTypeEnumeration.schema.json b/registry/schema-org/FulfillmentTypeEnumeration.schema.json new file mode 100644 index 0000000..34353a5 --- /dev/null +++ b/registry/schema-org/FulfillmentTypeEnumeration.schema.json @@ -0,0 +1,29 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:FulfillmentTypeEnumeration", + "title": "FulfillmentTypeEnumeration", + "description": "A type of product fulfillment.", + "type": "string", + "oneOf": [ + { + "description": "Fulfillment to a collection point location.", + "const": "FulfillmentTypeCollectionPoint" + }, + { + "description": "Fulfillment to a customer selected address.", + "const": "FulfillmentTypeDelivery" + }, + { + "description": "Fulfillment through pick-up drop-off locations.", + "const": "FulfillmentTypePickupDropoff" + }, + { + "description": "Fulfillment through pick-up in a store.", + "const": "FulfillmentTypePickupInStore" + }, + { + "description": "Fulfillment to a customer selected address after scheduling with the customer.", + "const": "FulfillmentTypeScheduledDelivery" + } + ] +} diff --git a/registry/schema-org/FundingAgency.schema.json b/registry/schema-org/FundingAgency.schema.json new file mode 100644 index 0000000..6749b4a --- /dev/null +++ b/registry/schema-org/FundingAgency.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:FundingAgency", + "title": "FundingAgency", + "description": "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 ", + "type": "object", + "allOf": [ + { + "description": "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 ", + "$ref": "schema:Project" + } + ] +} diff --git a/registry/schema-org/FundingScheme.schema.json b/registry/schema-org/FundingScheme.schema.json new file mode 100644 index 0000000..e059f76 --- /dev/null +++ b/registry/schema-org/FundingScheme.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:FundingScheme", + "title": "FundingScheme", + "description": "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, ...", + "type": "object", + "allOf": [ + { + "description": "An organization such as a school, NGO, corporation, club, etc.", + "$ref": "schema:Organization" + } + ] +} diff --git a/registry/schema-org/FurnitureStore.schema.json b/registry/schema-org/FurnitureStore.schema.json new file mode 100644 index 0000000..ef771a5 --- /dev/null +++ b/registry/schema-org/FurnitureStore.schema.json @@ -0,0 +1,8 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:FurnitureStore", + "title": "FurnitureStore", + "description": "A furniture store.", + "type": "object", + "allOf": [{ "description": "A retail good store.", "$ref": "schema:Store" }] +} diff --git a/registry/schema-org/Game.schema.json b/registry/schema-org/Game.schema.json new file mode 100644 index 0000000..1b99cfe --- /dev/null +++ b/registry/schema-org/Game.schema.json @@ -0,0 +1,62 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Game", + "title": "Game", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "The most generic kind of creative work, including books, movies, photographs, software programs, etc.", + "$ref": "schema:CreativeWork" + } + ], + "properties": { + "characterAttribute": { + "description": "A piece of data that represents a particular aspect of a fictional character (skill, power, character points, advantage, disadvantage).", + "oneOf": [ + { "$ref": "schema:Thing" }, + { "type": "array", "items": { "$ref": "schema:Thing" } } + ] + }, + "gameItem": { + "description": "An item is an object within the game world that can be collected by a player or, occasionally, a non-player character.", + "oneOf": [ + { "$ref": "schema:Thing" }, + { "type": "array", "items": { "$ref": "schema:Thing" } } + ] + }, + "gameLocation": { + "description": "Real or fictional location of the game (or part of game).", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:Place" }, + { "$ref": "schema:PostalAddress" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:Place" }, + { "$ref": "schema:PostalAddress" } + ] + } + } + ] + }, + "numberOfPlayers": { + "description": "Indicate how many people can play this game (minimum, maximum, or range).", + "oneOf": [ + { "$ref": "schema:QuantitativeValue" }, + { "type": "array", "items": { "$ref": "schema:QuantitativeValue" } } + ] + }, + "quest": { + "description": "The task that a player-controlled character, or group of characters may complete in order to gain a reward.", + "$ref": "schema:Thing" + } + } +} diff --git a/registry/schema-org/GameAvailabilityEnumeration.schema.json b/registry/schema-org/GameAvailabilityEnumeration.schema.json new file mode 100644 index 0000000..3ec0a58 --- /dev/null +++ b/registry/schema-org/GameAvailabilityEnumeration.schema.json @@ -0,0 +1,17 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:GameAvailabilityEnumeration", + "title": "GameAvailabilityEnumeration", + "description": "For a [[VideoGame]], such as used with a [[PlayGameAction]], an enumeration of the kind of game availability offered. ", + "type": "string", + "oneOf": [ + { + "description": "Indicates demo game availability, i.e. a somehow limited demonstration of the full game.", + "const": "DemoGameAvailability" + }, + { + "description": "Indicates full game availability.", + "const": "FullGameAvailability" + } + ] +} diff --git a/registry/schema-org/GamePlayMode.schema.json b/registry/schema-org/GamePlayMode.schema.json new file mode 100644 index 0000000..080c4b1 --- /dev/null +++ b/registry/schema-org/GamePlayMode.schema.json @@ -0,0 +1,21 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:GamePlayMode", + "title": "GamePlayMode", + "description": "Indicates whether this game is multi-player, co-op or single-player.", + "type": "string", + "oneOf": [ + { + "description": "Play mode: CoOp. Co-operative games, where you play on the same team with friends.", + "const": "CoOp" + }, + { + "description": "Play mode: MultiPlayer. Requiring or allowing multiple human players to play simultaneously.", + "const": "MultiPlayer" + }, + { + "description": "Play mode: SinglePlayer. Which is played by a lone player.", + "const": "SinglePlayer" + } + ] +} diff --git a/registry/schema-org/GameServer.schema.json b/registry/schema-org/GameServer.schema.json new file mode 100644 index 0000000..957dd88 --- /dev/null +++ b/registry/schema-org/GameServer.schema.json @@ -0,0 +1,36 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:GameServer", + "title": "GameServer", + "description": "Server that provides game interaction in a multiplayer game.", + "type": "object", + "allOf": [ + { + "description": "A utility class that serves as the umbrella for a number of 'intangible' things such as quantities, structured values, etc.", + "$ref": "schema:Intangible" + } + ], + "properties": { + "game": { + "description": "Video game which is played on this server.", + "oneOf": [ + { "$ref": "schema:VideoGame" }, + { "type": "array", "items": { "$ref": "schema:VideoGame" } } + ] + }, + "playersOnline": { + "description": "Number of players on the server.", + "oneOf": [ + { "type": "integer" }, + { "type": "array", "items": { "type": "integer" } } + ] + }, + "serverStatus": { + "description": "Status of a game server.", + "oneOf": [ + { "$ref": "schema:GameServerStatus" }, + { "type": "array", "items": { "$ref": "schema:GameServerStatus" } } + ] + } + } +} diff --git a/registry/schema-org/GameServerStatus.schema.json b/registry/schema-org/GameServerStatus.schema.json new file mode 100644 index 0000000..317ab99 --- /dev/null +++ b/registry/schema-org/GameServerStatus.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:GameServerStatus", + "title": "GameServerStatus", + "description": "Status of a game server.", + "type": "object", + "allOf": [ + { + "description": "Lists or enumerations dealing with status types.", + "$ref": "schema:StatusEnumeration" + } + ] +} diff --git a/registry/schema-org/GardenStore.schema.json b/registry/schema-org/GardenStore.schema.json new file mode 100644 index 0000000..aa11950 --- /dev/null +++ b/registry/schema-org/GardenStore.schema.json @@ -0,0 +1,8 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:GardenStore", + "title": "GardenStore", + "description": "A garden store.", + "type": "object", + "allOf": [{ "description": "A retail good store.", "$ref": "schema:Store" }] +} diff --git a/registry/schema-org/GasStation.schema.json b/registry/schema-org/GasStation.schema.json new file mode 100644 index 0000000..0463eac --- /dev/null +++ b/registry/schema-org/GasStation.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:GasStation", + "title": "GasStation", + "description": "A gas station.", + "type": "object", + "allOf": [ + { + "description": "Car repair, sales, or parts.", + "$ref": "schema:AutomotiveBusiness" + } + ] +} diff --git a/registry/schema-org/GatedResidenceCommunity.schema.json b/registry/schema-org/GatedResidenceCommunity.schema.json new file mode 100644 index 0000000..bcd2bfc --- /dev/null +++ b/registry/schema-org/GatedResidenceCommunity.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:GatedResidenceCommunity", + "title": "GatedResidenceCommunity", + "description": "Residence type: Gated community.", + "type": "object", + "allOf": [ + { + "description": "The place where a person lives.", + "$ref": "schema:Residence" + } + ] +} diff --git a/registry/schema-org/GenderType.schema.json b/registry/schema-org/GenderType.schema.json new file mode 100644 index 0000000..0464c7f --- /dev/null +++ b/registry/schema-org/GenderType.schema.json @@ -0,0 +1,11 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:GenderType", + "title": "GenderType", + "description": "An enumeration of genders.", + "type": "string", + "oneOf": [ + { "description": "The female gender.", "const": "Female" }, + { "description": "The male gender.", "const": "Male" } + ] +} diff --git a/registry/schema-org/Gene.schema.json b/registry/schema-org/Gene.schema.json new file mode 100644 index 0000000..33ee3df --- /dev/null +++ b/registry/schema-org/Gene.schema.json @@ -0,0 +1,60 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Gene", + "title": "Gene", + "description": "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).", + "type": "object", + "allOf": [ + { + "description": "Any biological, chemical, or biochemical thing. For example: a protein; a gene; a chemical; a synthetic chemical.", + "$ref": "schema:BioChemEntity" + } + ], + "properties": { + "alternativeOf": { + "description": "Another gene which is a variation of this one.", + "oneOf": [ + { "$ref": "schema:Gene" }, + { "type": "array", "items": { "$ref": "schema:Gene" } } + ] + }, + "encodesBioChemEntity": { + "description": "Another BioChemEntity encoded by this one. ", + "oneOf": [ + { "$ref": "schema:BioChemEntity" }, + { "type": "array", "items": { "$ref": "schema:BioChemEntity" } } + ] + }, + "expressedIn": { + "description": "Tissue, organ, biological sample, etc in which activity of this gene has been observed experimentally. For example brain, digestive system.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:AnatomicalStructure" }, + { "$ref": "schema:AnatomicalSystem" }, + { "$ref": "schema:BioChemEntity" }, + { "$ref": "schema:DefinedTerm" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:AnatomicalStructure" }, + { "$ref": "schema:AnatomicalSystem" }, + { "$ref": "schema:BioChemEntity" }, + { "$ref": "schema:DefinedTerm" } + ] + } + } + ] + }, + "hasBioPolymerSequence": { + "description": "A symbolic representation of a BioChemEntity. For example, a nucleotide sequence of a Gene or an amino acid sequence of a Protein.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + } + } +} diff --git a/registry/schema-org/GeneralContractor.schema.json b/registry/schema-org/GeneralContractor.schema.json new file mode 100644 index 0000000..b918da8 --- /dev/null +++ b/registry/schema-org/GeneralContractor.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:GeneralContractor", + "title": "GeneralContractor", + "description": "A general contractor.", + "type": "object", + "allOf": [ + { + "description": "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).", + "$ref": "schema:HomeAndConstructionBusiness" + } + ] +} diff --git a/registry/schema-org/GeoCircle.schema.json b/registry/schema-org/GeoCircle.schema.json new file mode 100644 index 0000000..c3350c7 --- /dev/null +++ b/registry/schema-org/GeoCircle.schema.json @@ -0,0 +1,44 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:GeoCircle", + "title": "GeoCircle", + "description": "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 ", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:GeoShape" + } + ], + "properties": { + "geoMidpoint": { + "description": "Indicates the GeoCoordinates at the centre of a GeoShape, e.g. GeoCircle.", + "oneOf": [ + { "$ref": "schema:GeoCoordinates" }, + { "type": "array", "items": { "$ref": "schema:GeoCoordinates" } } + ] + }, + "geoRadius": { + "description": "Indicates the approximate radius of a GeoCircle (metres unless indicated otherwise via Distance notation).", + "oneOf": [ + { + "anyOf": [ + { "type": "number" }, + { "type": "string", "$comment": "https://schema.org/Distance" }, + { "type": "string" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "number" }, + { "type": "string", "$comment": "https://schema.org/Distance" }, + { "type": "string" } + ] + } + } + ] + } + } +} diff --git a/registry/schema-org/GeoCoordinates.schema.json b/registry/schema-org/GeoCoordinates.schema.json new file mode 100644 index 0000000..2c0a88a --- /dev/null +++ b/registry/schema-org/GeoCoordinates.schema.json @@ -0,0 +1,39 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:GeoCoordinates", + "title": "GeoCoordinates", + "description": "The geographic coordinates of a place or event.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:StructuredValue" + } + ], + "properties": { + "address": { + "description": "Physical address of the item.", + "anyOf": [{ "type": "string" }, { "$ref": "schema:PostalAddress" }] + }, + "addressCountry": { + "description": "The country. Recommended to be in 2-letter [ISO 3166-1 alpha-2](http://en.wikipedia.org/wiki/ISO_3166-1) format, for example \"US\". For backward compatibility, a 3-letter [ISO 3166-1 alpha-3](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) country code such as \"SGP\" or a full country name such as \"Singapore\" can also be used.", + "anyOf": [{ "type": "string" }, { "$ref": "schema:Country" }] + }, + "elevation": { + "description": "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.", + "anyOf": [{ "type": "number" }, { "type": "string" }] + }, + "latitude": { + "description": "The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).", + "anyOf": [{ "type": "number" }, { "type": "string" }] + }, + "longitude": { + "description": "The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).", + "anyOf": [{ "type": "number" }, { "type": "string" }] + }, + "postalCode": { + "description": "The postal code. For example, 94043.", + "type": "string" + } + } +} diff --git a/registry/schema-org/GeoShape.schema.json b/registry/schema-org/GeoShape.schema.json new file mode 100644 index 0000000..b1b0d58 --- /dev/null +++ b/registry/schema-org/GeoShape.schema.json @@ -0,0 +1,59 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:GeoShape", + "title": "GeoShape", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:StructuredValue" + } + ], + "properties": { + "address": { + "description": "Physical address of the item.", + "anyOf": [{ "type": "string" }, { "$ref": "schema:PostalAddress" }] + }, + "addressCountry": { + "description": "The country. Recommended to be in 2-letter [ISO 3166-1 alpha-2](http://en.wikipedia.org/wiki/ISO_3166-1) format, for example \"US\". For backward compatibility, a 3-letter [ISO 3166-1 alpha-3](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) country code such as \"SGP\" or a full country name such as \"Singapore\" can also be used.", + "anyOf": [{ "type": "string" }, { "$ref": "schema:Country" }] + }, + "box": { + "description": "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.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "circle": { + "description": "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.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "elevation": { + "description": "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.", + "anyOf": [{ "type": "number" }, { "type": "string" }] + }, + "line": { + "description": "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.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "polygon": { + "description": "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.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "postalCode": { + "description": "The postal code. For example, 94043.", + "type": "string" + } + } +} diff --git a/registry/schema-org/GeospatialGeometry.schema.json b/registry/schema-org/GeospatialGeometry.schema.json new file mode 100644 index 0000000..35b0eab --- /dev/null +++ b/registry/schema-org/GeospatialGeometry.schema.json @@ -0,0 +1,215 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:GeospatialGeometry", + "title": "GeospatialGeometry", + "description": "(Eventually to be defined as) a supertype of GeoShape designed to accommodate definitions from Geo-Spatial best practices.", + "type": "object", + "allOf": [ + { + "description": "A utility class that serves as the umbrella for a number of 'intangible' things such as quantities, structured values, etc.", + "$ref": "schema:Intangible" + } + ], + "properties": { + "geoContains": { + "description": "Represents a relationship between two geometries (or the places they represent), relating a containing geometry to a contained geometry. \"a contains b iff no points of b lie in the exterior of a, and at least one point of the interior of b lies in the interior of a\". As defined in [DE-9IM](https://en.wikipedia.org/wiki/DE-9IM).", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:GeospatialGeometry" }, + { "$ref": "schema:Place" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:GeospatialGeometry" }, + { "$ref": "schema:Place" } + ] + } + } + ] + }, + "geoCoveredBy": { + "description": "Represents a relationship between two geometries (or the places they represent), relating a geometry to another that covers it. As defined in [DE-9IM](https://en.wikipedia.org/wiki/DE-9IM).", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:GeospatialGeometry" }, + { "$ref": "schema:Place" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:GeospatialGeometry" }, + { "$ref": "schema:Place" } + ] + } + } + ] + }, + "geoCovers": { + "description": "Represents a relationship between two geometries (or the places they represent), relating a covering geometry to a covered geometry. \"Every point of b is a point of (the interior or boundary of) a\". As defined in [DE-9IM](https://en.wikipedia.org/wiki/DE-9IM).", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:GeospatialGeometry" }, + { "$ref": "schema:Place" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:GeospatialGeometry" }, + { "$ref": "schema:Place" } + ] + } + } + ] + }, + "geoCrosses": { + "description": "Represents a relationship between two geometries (or the places they represent), relating a geometry to another that crosses it: \"a crosses b: they have some but not all interior points in common, and the dimension of the intersection is less than that of at least one of them\". As defined in [DE-9IM](https://en.wikipedia.org/wiki/DE-9IM).", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:GeospatialGeometry" }, + { "$ref": "schema:Place" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:GeospatialGeometry" }, + { "$ref": "schema:Place" } + ] + } + } + ] + }, + "geoDisjoint": { + "description": "Represents spatial relations in which two geometries (or the places they represent) are topologically disjoint: \"they have no point in common. They form a set of disconnected geometries.\" (A symmetric relationship, as defined in [DE-9IM](https://en.wikipedia.org/wiki/DE-9IM).)", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:GeospatialGeometry" }, + { "$ref": "schema:Place" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:GeospatialGeometry" }, + { "$ref": "schema:Place" } + ] + } + } + ] + }, + "geoEquals": { + "description": "Represents spatial relations in which two geometries (or the places they represent) are topologically equal, as defined in [DE-9IM](https://en.wikipedia.org/wiki/DE-9IM). \"Two geometries are topologically equal if their interiors intersect and no part of the interior or boundary of one geometry intersects the exterior of the other\" (a symmetric relationship).", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:GeospatialGeometry" }, + { "$ref": "schema:Place" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:GeospatialGeometry" }, + { "$ref": "schema:Place" } + ] + } + } + ] + }, + "geoIntersects": { + "description": "Represents spatial relations in which two geometries (or the places they represent) have at least one point in common. As defined in [DE-9IM](https://en.wikipedia.org/wiki/DE-9IM).", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:GeospatialGeometry" }, + { "$ref": "schema:Place" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:GeospatialGeometry" }, + { "$ref": "schema:Place" } + ] + } + } + ] + }, + "geoOverlaps": { + "description": "Represents a relationship between two geometries (or the places they represent), relating a geometry to another that geospatially overlaps it, i.e. they have some but not all points in common. As defined in [DE-9IM](https://en.wikipedia.org/wiki/DE-9IM).", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:GeospatialGeometry" }, + { "$ref": "schema:Place" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:GeospatialGeometry" }, + { "$ref": "schema:Place" } + ] + } + } + ] + }, + "geoTouches": { + "description": "Represents spatial relations in which two geometries (or the places they represent) touch: \"they have at least one boundary point in common, but no interior points.\" (A symmetric relationship, as defined in [DE-9IM](https://en.wikipedia.org/wiki/DE-9IM).)", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:GeospatialGeometry" }, + { "$ref": "schema:Place" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:GeospatialGeometry" }, + { "$ref": "schema:Place" } + ] + } + } + ] + }, + "geoWithin": { + "description": "Represents a relationship between two geometries (or the places they represent), relating a geometry to one that contains it, i.e. it is inside (i.e. within) its interior. As defined in [DE-9IM](https://en.wikipedia.org/wiki/DE-9IM).", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:GeospatialGeometry" }, + { "$ref": "schema:Place" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:GeospatialGeometry" }, + { "$ref": "schema:Place" } + ] + } + } + ] + } + } +} diff --git a/registry/schema-org/GiveAction.schema.json b/registry/schema-org/GiveAction.schema.json new file mode 100644 index 0000000..01f45dc --- /dev/null +++ b/registry/schema-org/GiveAction.schema.json @@ -0,0 +1,39 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:GiveAction", + "title": "GiveAction", + "description": "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).", + "type": "object", + "allOf": [ + { + "description": "The act of transferring/moving (abstract or concrete) animate or inanimate objects from one place to another.", + "$ref": "schema:TransferAction" + } + ], + "properties": { + "recipient": { + "description": "A sub property of participant. The participant who is at the receiving end of the action.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:Audience" }, + { "$ref": "schema:ContactPoint" }, + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:Audience" }, + { "$ref": "schema:ContactPoint" }, + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + } + } + ] + } + } +} diff --git a/registry/schema-org/GolfCourse.schema.json b/registry/schema-org/GolfCourse.schema.json new file mode 100644 index 0000000..8bf7d5d --- /dev/null +++ b/registry/schema-org/GolfCourse.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:GolfCourse", + "title": "GolfCourse", + "description": "A golf course.", + "type": "object", + "allOf": [ + { + "description": "A sports location, such as a playing field.", + "$ref": "schema:SportsActivityLocation" + } + ] +} diff --git a/registry/schema-org/GovernmentBenefitsType.schema.json b/registry/schema-org/GovernmentBenefitsType.schema.json new file mode 100644 index 0000000..b16d8db --- /dev/null +++ b/registry/schema-org/GovernmentBenefitsType.schema.json @@ -0,0 +1,41 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:GovernmentBenefitsType", + "title": "GovernmentBenefitsType", + "description": "GovernmentBenefitsType enumerates several kinds of government benefits to support the COVID-19 situation. Note that this structure may not capture all benefits offered.", + "type": "string", + "oneOf": [ + { + "description": "BasicIncome: this is a benefit for basic income.", + "const": "BasicIncome" + }, + { + "description": "BusinessSupport: this is a benefit for supporting businesses.", + "const": "BusinessSupport" + }, + { + "description": "DisabilitySupport: this is a benefit for disability support.", + "const": "DisabilitySupport" + }, + { + "description": "HealthCare: this is a benefit for health care.", + "const": "HealthCare" + }, + { + "description": "OneTimePayments: this is a benefit for one-time payments for individuals.", + "const": "OneTimePayments" + }, + { + "description": "PaidLeave: this is a benefit for paid leave.", + "const": "PaidLeave" + }, + { + "description": "ParentalSupport: this is a benefit for parental support.", + "const": "ParentalSupport" + }, + { + "description": "UnemploymentSupport: this is a benefit for unemployment support.", + "const": "UnemploymentSupport" + } + ] +} diff --git a/registry/schema-org/GovernmentBuilding.schema.json b/registry/schema-org/GovernmentBuilding.schema.json new file mode 100644 index 0000000..e5ee8e8 --- /dev/null +++ b/registry/schema-org/GovernmentBuilding.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:GovernmentBuilding", + "title": "GovernmentBuilding", + "description": "A government building.", + "type": "object", + "allOf": [ + { + "description": "A public structure, such as a town hall or concert hall.", + "$ref": "schema:CivicStructure" + } + ] +} diff --git a/registry/schema-org/GovernmentOffice.schema.json b/registry/schema-org/GovernmentOffice.schema.json new file mode 100644 index 0000000..08bdc15 --- /dev/null +++ b/registry/schema-org/GovernmentOffice.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:GovernmentOffice", + "title": "GovernmentOffice", + "description": "A government office—for example, an IRS or DMV office.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:LocalBusiness" + } + ] +} diff --git a/registry/schema-org/GovernmentOrganization.schema.json b/registry/schema-org/GovernmentOrganization.schema.json new file mode 100644 index 0000000..6fd457a --- /dev/null +++ b/registry/schema-org/GovernmentOrganization.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:GovernmentOrganization", + "title": "GovernmentOrganization", + "description": "A governmental organization or agency.", + "type": "object", + "allOf": [ + { + "description": "An organization such as a school, NGO, corporation, club, etc.", + "$ref": "schema:Organization" + } + ] +} diff --git a/registry/schema-org/GovernmentPermit.schema.json b/registry/schema-org/GovernmentPermit.schema.json new file mode 100644 index 0000000..35e3c65 --- /dev/null +++ b/registry/schema-org/GovernmentPermit.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:GovernmentPermit", + "title": "GovernmentPermit", + "description": "A permit issued by a government agency.", + "type": "object", + "allOf": [ + { + "description": "A permit issued by an organization, e.g. a parking pass.", + "$ref": "schema:Permit" + } + ] +} diff --git a/registry/schema-org/GovernmentService.schema.json b/registry/schema-org/GovernmentService.schema.json new file mode 100644 index 0000000..3094547 --- /dev/null +++ b/registry/schema-org/GovernmentService.schema.json @@ -0,0 +1,39 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:GovernmentService", + "title": "GovernmentService", + "description": "A service provided by a government organization, e.g. food stamps, veterans benefits, etc.", + "type": "object", + "allOf": [ + { + "description": "A service provided by an organization, e.g. delivery service, print services, etc.", + "$ref": "schema:Service" + } + ], + "properties": { + "jurisdiction": { + "description": "Indicates a legal jurisdiction, e.g. of some legislation, or where some government service is based.", + "oneOf": [ + { + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:AdministrativeArea" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:AdministrativeArea" } + ] + } + } + ] + }, + "serviceOperator": { + "description": "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.", + "$ref": "schema:Organization" + } + } +} diff --git a/registry/schema-org/Grant.schema.json b/registry/schema-org/Grant.schema.json new file mode 100644 index 0000000..bc73622 --- /dev/null +++ b/registry/schema-org/Grant.schema.json @@ -0,0 +1,85 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Grant", + "title": "Grant", + "description": "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 ", + "type": "object", + "allOf": [ + { + "description": "A utility class that serves as the umbrella for a number of 'intangible' things such as quantities, structured values, etc.", + "$ref": "schema:Intangible" + } + ], + "properties": { + "fundedItem": { + "description": "Indicates something directly or indirectly funded or sponsored through a [[Grant]]. See also [[ownershipFundingInfo]].", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:BioChemEntity" }, + { "$ref": "schema:CreativeWork" }, + { "$ref": "schema:Event" }, + { "$ref": "schema:MedicalEntity" }, + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" }, + { "$ref": "schema:Product" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:BioChemEntity" }, + { "$ref": "schema:CreativeWork" }, + { "$ref": "schema:Event" }, + { "$ref": "schema:MedicalEntity" }, + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" }, + { "$ref": "schema:Product" } + ] + } + } + ] + }, + "funder": { + "description": "A person or organization that supports (sponsors) something through some kind of financial contribution.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + } + } + ] + }, + "sponsor": { + "description": "A person or organization that supports a thing through a pledge, promise, or financial contribution. E.g. a sponsor of a Medical Study or a corporate sponsor of an event.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + } + } + ] + } + } +} diff --git a/registry/schema-org/GroceryStore.schema.json b/registry/schema-org/GroceryStore.schema.json new file mode 100644 index 0000000..a866f8a --- /dev/null +++ b/registry/schema-org/GroceryStore.schema.json @@ -0,0 +1,8 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:GroceryStore", + "title": "GroceryStore", + "description": "A grocery store.", + "type": "object", + "allOf": [{ "description": "A retail good store.", "$ref": "schema:Store" }] +} diff --git a/registry/schema-org/Guide.schema.json b/registry/schema-org/Guide.schema.json new file mode 100644 index 0000000..47cee83 --- /dev/null +++ b/registry/schema-org/Guide.schema.json @@ -0,0 +1,22 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Guide", + "title": "Guide", + "description": "[[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.", + "type": "object", + "allOf": [ + { + "description": "The most generic kind of creative work, including books, movies, photographs, software programs, etc.", + "$ref": "schema:CreativeWork" + } + ], + "properties": { + "reviewAspect": { + "description": "This Review or Rating is relevant to this part or facet of the itemReviewed.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + } + } +} diff --git a/registry/schema-org/HVACBusiness.schema.json b/registry/schema-org/HVACBusiness.schema.json new file mode 100644 index 0000000..2d3defb --- /dev/null +++ b/registry/schema-org/HVACBusiness.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:HVACBusiness", + "title": "HVACBusiness", + "description": "A business that provides Heating, Ventilation and Air Conditioning services.", + "type": "object", + "allOf": [ + { + "description": "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).", + "$ref": "schema:HomeAndConstructionBusiness" + } + ] +} diff --git a/registry/schema-org/Hackathon.schema.json b/registry/schema-org/Hackathon.schema.json new file mode 100644 index 0000000..8cf4af1 --- /dev/null +++ b/registry/schema-org/Hackathon.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Hackathon", + "title": "Hackathon", + "description": "A [hackathon](https://en.wikipedia.org/wiki/Hackathon) event.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:Event" + } + ] +} diff --git a/registry/schema-org/HairSalon.schema.json b/registry/schema-org/HairSalon.schema.json new file mode 100644 index 0000000..ef6cf77 --- /dev/null +++ b/registry/schema-org/HairSalon.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:HairSalon", + "title": "HairSalon", + "description": "A hair salon.", + "type": "object", + "allOf": [ + { + "description": "Health and beauty.", + "$ref": "schema:HealthAndBeautyBusiness" + } + ] +} diff --git a/registry/schema-org/HardwareStore.schema.json b/registry/schema-org/HardwareStore.schema.json new file mode 100644 index 0000000..c6836f8 --- /dev/null +++ b/registry/schema-org/HardwareStore.schema.json @@ -0,0 +1,8 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:HardwareStore", + "title": "HardwareStore", + "description": "A hardware store.", + "type": "object", + "allOf": [{ "description": "A retail good store.", "$ref": "schema:Store" }] +} diff --git a/registry/schema-org/HealthAndBeautyBusiness.schema.json b/registry/schema-org/HealthAndBeautyBusiness.schema.json new file mode 100644 index 0000000..e96c601 --- /dev/null +++ b/registry/schema-org/HealthAndBeautyBusiness.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:HealthAndBeautyBusiness", + "title": "HealthAndBeautyBusiness", + "description": "Health and beauty.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:LocalBusiness" + } + ] +} diff --git a/registry/schema-org/HealthAspectEnumeration.schema.json b/registry/schema-org/HealthAspectEnumeration.schema.json new file mode 100644 index 0000000..29d824e --- /dev/null +++ b/registry/schema-org/HealthAspectEnumeration.schema.json @@ -0,0 +1,125 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:HealthAspectEnumeration", + "title": "HealthAspectEnumeration", + "description": "HealthAspectEnumeration enumerates several aspects of health content online, each of which might be described using [[hasHealthAspect]] and [[HealthTopicContent]].", + "type": "string", + "oneOf": [ + { + "description": "Content about the allergy-related aspects of a health topic.", + "const": "AllergiesHealthAspect" + }, + { + "description": "Content about the benefits and advantages of usage or utilization of topic.", + "const": "BenefitsHealthAspect" + }, + { + "description": "Information about the causes and main actions that gave rise to the topic.", + "const": "CausesHealthAspect" + }, + { + "description": "Content about contagion mechanisms and contagiousness information over the topic.", + "const": "ContagiousnessHealthAspect" + }, + { + "description": "Content about the effectiveness-related aspects of a health topic.", + "const": "EffectivenessHealthAspect" + }, + { + "description": "Content that discusses practical and policy aspects for getting access to specific kinds of healthcare (e.g. distribution mechanisms for vaccines).", + "const": "GettingAccessHealthAspect" + }, + { + "description": "Content that discusses and explains how a particular health-related topic works, e.g. in terms of mechanisms and underlying science.", + "const": "HowItWorksHealthAspect" + }, + { + "description": "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.", + "const": "HowOrWhereHealthAspect" + }, + { + "description": "Content discussing ingredients-related aspects of a health topic.", + "const": "IngredientsHealthAspect" + }, + { + "description": "Information about coping or life related to the topic.", + "const": "LivingWithHealthAspect" + }, + { + "description": "Related topics may be treated by a Topic.", + "const": "MayTreatHealthAspect" + }, + { + "description": "Content about common misconceptions and myths that are related to a topic.", + "const": "MisconceptionsHealthAspect" + }, + { + "description": "Overview of the content. Contains a summarized view of the topic with the most relevant information for an introduction.", + "const": "OverviewHealthAspect" + }, + { + "description": "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.", + "const": "PatientExperienceHealthAspect" + }, + { + "description": "Content discussing pregnancy-related aspects of a health topic.", + "const": "PregnancyHealthAspect" + }, + { + "description": "Information about actions or measures that can be taken to avoid getting the topic or reaching a critical situation related to the topic.", + "const": "PreventionHealthAspect" + }, + { + "description": "Typical progression and happenings of life course of the topic.", + "const": "PrognosisHealthAspect" + }, + { + "description": "Other prominent or relevant topics tied to the main topic.", + "const": "RelatedTopicsHealthAspect" + }, + { + "description": "Information about the risk factors and possible complications that may follow a topic.", + "const": "RisksOrComplicationsHealthAspect" + }, + { + "description": "Content about the safety-related aspects of a health topic.", + "const": "SafetyHealthAspect" + }, + { + "description": "Content about how to screen or further filter a topic.", + "const": "ScreeningHealthAspect" + }, + { + "description": "Information about questions that may be asked, when to see a professional, measures before seeing a doctor or content about the first consultation.", + "const": "SeeDoctorHealthAspect" + }, + { + "description": "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.", + "const": "SelfCareHealthAspect" + }, + { + "description": "Side effects that can be observed from the usage of the topic.", + "const": "SideEffectsHealthAspect" + }, + { + "description": "Stages that can be observed from a topic.", + "const": "StagesHealthAspect" + }, + { + "description": "Symptoms or related symptoms of a Topic.", + "const": "SymptomsHealthAspect" + }, + { + "description": "Treatments or related therapies for a Topic.", + "const": "TreatmentsHealthAspect" + }, + { + "description": "Categorization and other types related to a topic.", + "const": "TypesHealthAspect" + }, + { + "description": "Content about how, when, frequency and dosage of a topic.", + "const": "UsageOrScheduleHealthAspect" + } + ] +} diff --git a/registry/schema-org/HealthClub.schema.json b/registry/schema-org/HealthClub.schema.json new file mode 100644 index 0000000..590b05a --- /dev/null +++ b/registry/schema-org/HealthClub.schema.json @@ -0,0 +1,17 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:HealthClub", + "title": "HealthClub", + "description": "A health club.", + "type": "object", + "allOf": [ + { + "description": "Health and beauty.", + "$ref": "schema:HealthAndBeautyBusiness" + }, + { + "description": "A sports location, such as a playing field.", + "$ref": "schema:SportsActivityLocation" + } + ] +} diff --git a/registry/schema-org/HealthInsurancePlan.schema.json b/registry/schema-org/HealthInsurancePlan.schema.json new file mode 100644 index 0000000..cd106d6 --- /dev/null +++ b/registry/schema-org/HealthInsurancePlan.schema.json @@ -0,0 +1,65 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:HealthInsurancePlan", + "title": "HealthInsurancePlan", + "description": "A US-style health insurance plan, including PPOs, EPOs, and HMOs.", + "type": "object", + "allOf": [ + { + "description": "A utility class that serves as the umbrella for a number of 'intangible' things such as quantities, structured values, etc.", + "$ref": "schema:Intangible" + } + ], + "properties": { + "benefitsSummaryUrl": { + "description": "The URL that goes directly to the summary of benefits and coverage for the specific standard plan or plan variation.", + "type": "string", + "format": "uri" + }, + "contactPoint": { + "description": "A contact point for a person or organization.", + "oneOf": [ + { "$ref": "schema:ContactPoint" }, + { "type": "array", "items": { "$ref": "schema:ContactPoint" } } + ] + }, + "healthPlanDrugOption": { + "description": "TODO.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "healthPlanDrugTier": { + "description": "The tier(s) of drugs offered by this formulary or insurance plan.", + "type": "string" + }, + "healthPlanId": { + "description": "The 14-character, HIOS-generated Plan ID number. (Plan IDs must be unique, even across different markets.)", + "type": "string" + }, + "healthPlanMarketingUrl": { + "description": "The URL that goes directly to the plan brochure for the specific standard plan or plan variation.", + "type": "string", + "format": "uri" + }, + "includesHealthPlanFormulary": { + "description": "Formularies covered by this plan.", + "oneOf": [ + { "$ref": "schema:HealthPlanFormulary" }, + { "type": "array", "items": { "$ref": "schema:HealthPlanFormulary" } } + ] + }, + "includesHealthPlanNetwork": { + "description": "Networks covered by this plan.", + "oneOf": [ + { "$ref": "schema:HealthPlanNetwork" }, + { "type": "array", "items": { "$ref": "schema:HealthPlanNetwork" } } + ] + }, + "usesHealthPlanIdStandard": { + "description": "The standard for interpreting the Plan ID. The preferred is \"HIOS\". See the Centers for Medicare & Medicaid Services for more details.", + "anyOf": [{ "type": "string", "format": "uri" }, { "type": "string" }] + } + } +} diff --git a/registry/schema-org/HealthPlanCostSharingSpecification.schema.json b/registry/schema-org/HealthPlanCostSharingSpecification.schema.json new file mode 100644 index 0000000..743caed --- /dev/null +++ b/registry/schema-org/HealthPlanCostSharingSpecification.schema.json @@ -0,0 +1,41 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:HealthPlanCostSharingSpecification", + "title": "HealthPlanCostSharingSpecification", + "description": "A description of costs to the patient under a given network or formulary.", + "type": "object", + "allOf": [ + { + "description": "A utility class that serves as the umbrella for a number of 'intangible' things such as quantities, structured values, etc.", + "$ref": "schema:Intangible" + } + ], + "properties": { + "healthPlanCoinsuranceOption": { + "description": "Whether the coinsurance applies before or after deductible, etc. TODO: Is this a closed set?", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "healthPlanCoinsuranceRate": { + "description": "The rate of coinsurance expressed as a number between 0.0 and 1.0.", + "type": "number" + }, + "healthPlanCopay": { + "description": "The copay amount.", + "$ref": "schema:PriceSpecification" + }, + "healthPlanCopayOption": { + "description": "Whether the copay is before or after deductible, etc. TODO: Is this a closed set?", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "healthPlanPharmacyCategory": { + "description": "The category or type of pharmacy associated with this cost sharing.", + "type": "string" + } + } +} diff --git a/registry/schema-org/HealthPlanFormulary.schema.json b/registry/schema-org/HealthPlanFormulary.schema.json new file mode 100644 index 0000000..da3f039 --- /dev/null +++ b/registry/schema-org/HealthPlanFormulary.schema.json @@ -0,0 +1,27 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:HealthPlanFormulary", + "title": "HealthPlanFormulary", + "description": "For a given health insurance plan, the specification for costs and coverage of prescription drugs.", + "type": "object", + "allOf": [ + { + "description": "A utility class that serves as the umbrella for a number of 'intangible' things such as quantities, structured values, etc.", + "$ref": "schema:Intangible" + } + ], + "properties": { + "healthPlanCostSharing": { + "description": "The costs to the patient for services under this network or formulary.", + "type": "boolean" + }, + "healthPlanDrugTier": { + "description": "The tier(s) of drugs offered by this formulary or insurance plan.", + "type": "string" + }, + "offersPrescriptionByMail": { + "description": "Whether prescriptions can be delivered by mail.", + "type": "boolean" + } + } +} diff --git a/registry/schema-org/HealthPlanNetwork.schema.json b/registry/schema-org/HealthPlanNetwork.schema.json new file mode 100644 index 0000000..b1f0189 --- /dev/null +++ b/registry/schema-org/HealthPlanNetwork.schema.json @@ -0,0 +1,30 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:HealthPlanNetwork", + "title": "HealthPlanNetwork", + "description": "A US-style health insurance plan network.", + "type": "object", + "allOf": [ + { + "description": "A utility class that serves as the umbrella for a number of 'intangible' things such as quantities, structured values, etc.", + "$ref": "schema:Intangible" + } + ], + "properties": { + "healthPlanCostSharing": { + "description": "The costs to the patient for services under this network or formulary.", + "type": "boolean" + }, + "healthPlanNetworkId": { + "description": "Name or unique ID of network. (Networks are often reused across different insurance plans.)", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "healthPlanNetworkTier": { + "description": "The tier(s) for this network.", + "type": "string" + } + } +} diff --git a/registry/schema-org/HealthTopicContent.schema.json b/registry/schema-org/HealthTopicContent.schema.json new file mode 100644 index 0000000..340b568 --- /dev/null +++ b/registry/schema-org/HealthTopicContent.schema.json @@ -0,0 +1,25 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:HealthTopicContent", + "title": "HealthTopicContent", + "description": "[[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 ", + "type": "object", + "allOf": [ + { + "description": "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]].)", + "$ref": "schema:WebContent" + } + ], + "properties": { + "hasHealthAspect": { + "description": "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.", + "oneOf": [ + { "$ref": "schema:HealthAspectEnumeration" }, + { + "type": "array", + "items": { "$ref": "schema:HealthAspectEnumeration" } + } + ] + } + } +} diff --git a/registry/schema-org/HighSchool.schema.json b/registry/schema-org/HighSchool.schema.json new file mode 100644 index 0000000..d85ef43 --- /dev/null +++ b/registry/schema-org/HighSchool.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:HighSchool", + "title": "HighSchool", + "description": "A high school.", + "type": "object", + "allOf": [ + { + "description": "An educational organization.", + "$ref": "schema:EducationalOrganization" + } + ] +} diff --git a/registry/schema-org/HinduTemple.schema.json b/registry/schema-org/HinduTemple.schema.json new file mode 100644 index 0000000..e734e8a --- /dev/null +++ b/registry/schema-org/HinduTemple.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:HinduTemple", + "title": "HinduTemple", + "description": "A Hindu temple.", + "type": "object", + "allOf": [ + { + "description": "Place of worship, such as a church, synagogue, or mosque.", + "$ref": "schema:PlaceOfWorship" + } + ] +} diff --git a/registry/schema-org/HobbyShop.schema.json b/registry/schema-org/HobbyShop.schema.json new file mode 100644 index 0000000..24143a1 --- /dev/null +++ b/registry/schema-org/HobbyShop.schema.json @@ -0,0 +1,8 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:HobbyShop", + "title": "HobbyShop", + "description": "A store that sells materials useful or necessary for various hobbies.", + "type": "object", + "allOf": [{ "description": "A retail good store.", "$ref": "schema:Store" }] +} diff --git a/registry/schema-org/HomeAndConstructionBusiness.schema.json b/registry/schema-org/HomeAndConstructionBusiness.schema.json new file mode 100644 index 0000000..02e2d91 --- /dev/null +++ b/registry/schema-org/HomeAndConstructionBusiness.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:HomeAndConstructionBusiness", + "title": "HomeAndConstructionBusiness", + "description": "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).", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:LocalBusiness" + } + ] +} diff --git a/registry/schema-org/HomeGoodsStore.schema.json b/registry/schema-org/HomeGoodsStore.schema.json new file mode 100644 index 0000000..f020f2c --- /dev/null +++ b/registry/schema-org/HomeGoodsStore.schema.json @@ -0,0 +1,8 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:HomeGoodsStore", + "title": "HomeGoodsStore", + "description": "A home goods store.", + "type": "object", + "allOf": [{ "description": "A retail good store.", "$ref": "schema:Store" }] +} diff --git a/registry/schema-org/Hospital.schema.json b/registry/schema-org/Hospital.schema.json new file mode 100644 index 0000000..834c278 --- /dev/null +++ b/registry/schema-org/Hospital.schema.json @@ -0,0 +1,72 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Hospital", + "title": "Hospital", + "description": "A hospital.", + "type": "object", + "allOf": [ + { + "description": "A public structure, such as a town hall or concert hall.", + "$ref": "schema:CivicStructure" + }, + { + "description": "An emergency service, such as a fire station or ER.", + "$ref": "schema:EmergencyService" + }, + { + "description": "A medical organization (physical or not), such as hospital, institution or clinic.", + "$ref": "schema:MedicalOrganization" + } + ], + "properties": { + "availableService": { + "description": "A medical service available from this provider.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:MedicalProcedure" }, + { "$ref": "schema:MedicalTest" }, + { "$ref": "schema:MedicalTherapy" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:MedicalProcedure" }, + { "$ref": "schema:MedicalTest" }, + { "$ref": "schema:MedicalTherapy" } + ] + } + } + ] + }, + "healthcareReportingData": { + "description": "Indicates data describing a hospital, e.g. a CDC [[CDCPMDRecord]] or as some kind of [[Dataset]].", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:CDCPMDRecord" }, + { "$ref": "schema:Dataset" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:CDCPMDRecord" }, + { "$ref": "schema:Dataset" } + ] + } + } + ] + }, + "medicalSpecialty": { + "description": "A medical specialty of the provider.", + "oneOf": [ + { "$ref": "schema:MedicalSpecialty" }, + { "type": "array", "items": { "$ref": "schema:MedicalSpecialty" } } + ] + } + } +} diff --git a/registry/schema-org/Hostel.schema.json b/registry/schema-org/Hostel.schema.json new file mode 100644 index 0000000..6406326 --- /dev/null +++ b/registry/schema-org/Hostel.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Hostel", + "title": "Hostel", + "description": "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.\n", + "type": "object", + "allOf": [ + { + "description": "A lodging business, such as a motel, hotel, or inn.", + "$ref": "schema:LodgingBusiness" + } + ] +} diff --git a/registry/schema-org/Hotel.schema.json b/registry/schema-org/Hotel.schema.json new file mode 100644 index 0000000..3530b4d --- /dev/null +++ b/registry/schema-org/Hotel.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Hotel", + "title": "Hotel", + "description": "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.\n", + "type": "object", + "allOf": [ + { + "description": "A lodging business, such as a motel, hotel, or inn.", + "$ref": "schema:LodgingBusiness" + } + ] +} diff --git a/registry/schema-org/HotelRoom.schema.json b/registry/schema-org/HotelRoom.schema.json new file mode 100644 index 0000000..2277eb6 --- /dev/null +++ b/registry/schema-org/HotelRoom.schema.json @@ -0,0 +1,27 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:HotelRoom", + "title": "HotelRoom", + "description": "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.\n", + "type": "object", + "allOf": [ + { + "description": "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.\n", + "$ref": "schema:Room" + } + ], + "properties": { + "bed": { + "description": "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.\n 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.", + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:BedDetails" }, + { "$ref": "schema:BedType" } + ] + }, + "occupancy": { + "description": "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).\nTypical unit code(s): C62 for person.", + "$ref": "schema:QuantitativeValue" + } + } +} diff --git a/registry/schema-org/House.schema.json b/registry/schema-org/House.schema.json new file mode 100644 index 0000000..9866f8f --- /dev/null +++ b/registry/schema-org/House.schema.json @@ -0,0 +1,19 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:House", + "title": "House", + "description": "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).", + "type": "object", + "allOf": [ + { + "description": "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.\n", + "$ref": "schema:Accommodation" + } + ], + "properties": { + "numberOfRooms": { + "description": "The number of rooms (excluding bathrooms and closets) of the accommodation or lodging business.\nTypical 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.", + "anyOf": [{ "type": "number" }, { "$ref": "schema:QuantitativeValue" }] + } + } +} diff --git a/registry/schema-org/HousePainter.schema.json b/registry/schema-org/HousePainter.schema.json new file mode 100644 index 0000000..f9cd508 --- /dev/null +++ b/registry/schema-org/HousePainter.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:HousePainter", + "title": "HousePainter", + "description": "A house painting service.", + "type": "object", + "allOf": [ + { + "description": "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).", + "$ref": "schema:HomeAndConstructionBusiness" + } + ] +} diff --git a/registry/schema-org/HowTo.schema.json b/registry/schema-org/HowTo.schema.json new file mode 100644 index 0000000..1245064 --- /dev/null +++ b/registry/schema-org/HowTo.schema.json @@ -0,0 +1,108 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:HowTo", + "title": "HowTo", + "description": "Instructions that explain how to achieve a result by performing a sequence of steps.", + "type": "object", + "allOf": [ + { + "description": "The most generic kind of creative work, including books, movies, photographs, software programs, etc.", + "$ref": "schema:CreativeWork" + } + ], + "properties": { + "estimatedCost": { + "description": "The estimated cost of the supply or supplies consumed when performing instructions.", + "anyOf": [{ "type": "string" }, { "$ref": "schema:MonetaryAmount" }] + }, + "performTime": { + "description": "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).", + "type": "string", + "$comment": "https://schema.org/Duration" + }, + "prepTime": { + "description": "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).", + "type": "string", + "$comment": "https://schema.org/Duration" + }, + "step": { + "description": "A single step item (as HowToStep, text, document, video, etc.) or a HowToSection.", + "oneOf": [ + { + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:CreativeWork" }, + { "$ref": "schema:HowToSection" }, + { "$ref": "schema:HowToStep" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:CreativeWork" }, + { "$ref": "schema:HowToSection" }, + { "$ref": "schema:HowToStep" } + ] + } + } + ] + }, + "steps": { + "description": "A single step item (as HowToStep, text, document, video, etc.) or a HowToSection (originally misnamed 'steps'; 'step' is preferred).", + "oneOf": [ + { + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:CreativeWork" }, + { "$ref": "schema:ItemList" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:CreativeWork" }, + { "$ref": "schema:ItemList" } + ] + } + } + ] + }, + "supply": { + "description": "A sub-property of instrument. A supply consumed when performing instructions or a direction.", + "oneOf": [ + { "anyOf": [{ "type": "string" }, { "$ref": "schema:HowToSupply" }] }, + { + "type": "array", + "items": { + "anyOf": [{ "type": "string" }, { "$ref": "schema:HowToSupply" }] + } + } + ] + }, + "tool": { + "description": "A sub property of instrument. An object used (but not consumed) when performing instructions or a direction.", + "oneOf": [ + { "anyOf": [{ "type": "string" }, { "$ref": "schema:HowToTool" }] }, + { + "type": "array", + "items": { + "anyOf": [{ "type": "string" }, { "$ref": "schema:HowToTool" }] + } + } + ] + }, + "totalTime": { + "description": "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).", + "type": "string", + "$comment": "https://schema.org/Duration" + }, + "yield": { + "description": "The quantity that results by performing instructions. For example, a paper airplane, 10 personalized candles.", + "anyOf": [{ "type": "string" }, { "$ref": "schema:QuantitativeValue" }] + } + } +} diff --git a/registry/schema-org/HowToDirection.schema.json b/registry/schema-org/HowToDirection.schema.json new file mode 100644 index 0000000..ae90b8f --- /dev/null +++ b/registry/schema-org/HowToDirection.schema.json @@ -0,0 +1,118 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:HowToDirection", + "title": "HowToDirection", + "description": "A direction indicating a single action to do in the instructions for how to achieve a result.", + "type": "object", + "allOf": [ + { + "description": "The most generic kind of creative work, including books, movies, photographs, software programs, etc.", + "$ref": "schema:CreativeWork" + }, + { + "description": "An list item, e.g. a step in a checklist or how-to description.", + "$ref": "schema:ListItem" + } + ], + "properties": { + "afterMedia": { + "description": "A media object representing the circumstances after performing this direction.", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:MediaObject" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:MediaObject" } + ] + } + } + ] + }, + "beforeMedia": { + "description": "A media object representing the circumstances before performing this direction.", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:MediaObject" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:MediaObject" } + ] + } + } + ] + }, + "duringMedia": { + "description": "A media object representing the circumstances while performing this direction.", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:MediaObject" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:MediaObject" } + ] + } + } + ] + }, + "performTime": { + "description": "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).", + "type": "string", + "$comment": "https://schema.org/Duration" + }, + "prepTime": { + "description": "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).", + "type": "string", + "$comment": "https://schema.org/Duration" + }, + "supply": { + "description": "A sub-property of instrument. A supply consumed when performing instructions or a direction.", + "oneOf": [ + { "anyOf": [{ "type": "string" }, { "$ref": "schema:HowToSupply" }] }, + { + "type": "array", + "items": { + "anyOf": [{ "type": "string" }, { "$ref": "schema:HowToSupply" }] + } + } + ] + }, + "tool": { + "description": "A sub property of instrument. An object used (but not consumed) when performing instructions or a direction.", + "oneOf": [ + { "anyOf": [{ "type": "string" }, { "$ref": "schema:HowToTool" }] }, + { + "type": "array", + "items": { + "anyOf": [{ "type": "string" }, { "$ref": "schema:HowToTool" }] + } + } + ] + }, + "totalTime": { + "description": "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).", + "type": "string", + "$comment": "https://schema.org/Duration" + } + } +} diff --git a/registry/schema-org/HowToItem.schema.json b/registry/schema-org/HowToItem.schema.json new file mode 100644 index 0000000..f83005a --- /dev/null +++ b/registry/schema-org/HowToItem.schema.json @@ -0,0 +1,23 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:HowToItem", + "title": "HowToItem", + "description": "An item used as either a tool or supply when performing the instructions for how to achieve a result.", + "type": "object", + "allOf": [ + { + "description": "An list item, e.g. a step in a checklist or how-to description.", + "$ref": "schema:ListItem" + } + ], + "properties": { + "requiredQuantity": { + "description": "The required quantity of the item(s).", + "anyOf": [ + { "type": "number" }, + { "type": "string" }, + { "$ref": "schema:QuantitativeValue" } + ] + } + } +} diff --git a/registry/schema-org/HowToSection.schema.json b/registry/schema-org/HowToSection.schema.json new file mode 100644 index 0000000..904b081 --- /dev/null +++ b/registry/schema-org/HowToSection.schema.json @@ -0,0 +1,45 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:HowToSection", + "title": "HowToSection", + "description": "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).", + "type": "object", + "allOf": [ + { + "description": "The most generic kind of creative work, including books, movies, photographs, software programs, etc.", + "$ref": "schema:CreativeWork" + }, + { + "description": "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.", + "$ref": "schema:ItemList" + }, + { + "description": "An list item, e.g. a step in a checklist or how-to description.", + "$ref": "schema:ListItem" + } + ], + "properties": { + "steps": { + "description": "A single step item (as HowToStep, text, document, video, etc.) or a HowToSection (originally misnamed 'steps'; 'step' is preferred).", + "oneOf": [ + { + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:CreativeWork" }, + { "$ref": "schema:ItemList" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:CreativeWork" }, + { "$ref": "schema:ItemList" } + ] + } + } + ] + } + } +} diff --git a/registry/schema-org/HowToStep.schema.json b/registry/schema-org/HowToStep.schema.json new file mode 100644 index 0000000..c238f4d --- /dev/null +++ b/registry/schema-org/HowToStep.schema.json @@ -0,0 +1,21 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:HowToStep", + "title": "HowToStep", + "description": "A step in the instructions for how to achieve a result. It is an ordered list with HowToDirection and/or HowToTip items.", + "type": "object", + "allOf": [ + { + "description": "The most generic kind of creative work, including books, movies, photographs, software programs, etc.", + "$ref": "schema:CreativeWork" + }, + { + "description": "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.", + "$ref": "schema:ItemList" + }, + { + "description": "An list item, e.g. a step in a checklist or how-to description.", + "$ref": "schema:ListItem" + } + ] +} diff --git a/registry/schema-org/HowToSupply.schema.json b/registry/schema-org/HowToSupply.schema.json new file mode 100644 index 0000000..c845e61 --- /dev/null +++ b/registry/schema-org/HowToSupply.schema.json @@ -0,0 +1,19 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:HowToSupply", + "title": "HowToSupply", + "description": "A supply consumed when performing the instructions for how to achieve a result.", + "type": "object", + "allOf": [ + { + "description": "An item used as either a tool or supply when performing the instructions for how to achieve a result.", + "$ref": "schema:HowToItem" + } + ], + "properties": { + "estimatedCost": { + "description": "The estimated cost of the supply or supplies consumed when performing instructions.", + "anyOf": [{ "type": "string" }, { "$ref": "schema:MonetaryAmount" }] + } + } +} diff --git a/registry/schema-org/HowToTip.schema.json b/registry/schema-org/HowToTip.schema.json new file mode 100644 index 0000000..71f646b --- /dev/null +++ b/registry/schema-org/HowToTip.schema.json @@ -0,0 +1,17 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:HowToTip", + "title": "HowToTip", + "description": "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).", + "type": "object", + "allOf": [ + { + "description": "The most generic kind of creative work, including books, movies, photographs, software programs, etc.", + "$ref": "schema:CreativeWork" + }, + { + "description": "An list item, e.g. a step in a checklist or how-to description.", + "$ref": "schema:ListItem" + } + ] +} diff --git a/registry/schema-org/HowToTool.schema.json b/registry/schema-org/HowToTool.schema.json new file mode 100644 index 0000000..338d104 --- /dev/null +++ b/registry/schema-org/HowToTool.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:HowToTool", + "title": "HowToTool", + "description": "A tool used (but not consumed) when performing instructions for how to achieve a result.", + "type": "object", + "allOf": [ + { + "description": "An item used as either a tool or supply when performing the instructions for how to achieve a result.", + "$ref": "schema:HowToItem" + } + ] +} diff --git a/registry/schema-org/HyperToc.schema.json b/registry/schema-org/HyperToc.schema.json new file mode 100644 index 0000000..c790f22 --- /dev/null +++ b/registry/schema-org/HyperToc.schema.json @@ -0,0 +1,26 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:HyperToc", + "title": "HyperToc", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "The most generic kind of creative work, including books, movies, photographs, software programs, etc.", + "$ref": "schema:CreativeWork" + } + ], + "properties": { + "associatedMedia": { + "description": "A media object that encodes this CreativeWork. This property is a synonym for encoding.", + "$ref": "schema:MediaObject" + }, + "tocEntry": { + "description": "Indicates a [[HyperTocEntry]] in a [[HyperToc]].", + "oneOf": [ + { "$ref": "schema:HyperTocEntry" }, + { "type": "array", "items": { "$ref": "schema:HyperTocEntry" } } + ] + } + } +} diff --git a/registry/schema-org/HyperTocEntry.schema.json b/registry/schema-org/HyperTocEntry.schema.json new file mode 100644 index 0000000..521de13 --- /dev/null +++ b/registry/schema-org/HyperTocEntry.schema.json @@ -0,0 +1,33 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:HyperTocEntry", + "title": "HyperTocEntry", + "description": "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]].", + "type": "object", + "allOf": [ + { + "description": "The most generic kind of creative work, including books, movies, photographs, software programs, etc.", + "$ref": "schema:CreativeWork" + } + ], + "properties": { + "associatedMedia": { + "description": "A media object that encodes this CreativeWork. This property is a synonym for encoding.", + "$ref": "schema:MediaObject" + }, + "tocContinuation": { + "description": "A [[HyperTocEntry]] can have a [[tocContinuation]] indicated, which is another [[HyperTocEntry]] that would be the default next item to play or render.", + "oneOf": [ + { "$ref": "schema:HyperTocEntry" }, + { "type": "array", "items": { "$ref": "schema:HyperTocEntry" } } + ] + }, + "utterances": { + "description": "Text of an utterances (spoken words, lyrics etc.) that occurs at a certain section of a media object, represented as a [[HyperTocEntry]].", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + } + } +} diff --git a/registry/schema-org/IPTCDigitalSourceEnumeration.schema.json b/registry/schema-org/IPTCDigitalSourceEnumeration.schema.json new file mode 100644 index 0000000..870450f --- /dev/null +++ b/registry/schema-org/IPTCDigitalSourceEnumeration.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:IPTCDigitalSourceEnumeration", + "title": "IPTCDigitalSourceEnumeration", + "description": "IPTC \"Digital Source\" codes for use with the [[digitalSourceType]] property, providing information about the source for a digital media object.\nIn general these codes are not declared here to be mutually exclusive, although some combinations would be contradictory if applied simultaneously, or might be considered mutually incompatible by upstream maintainers of the definitions. See the IPTC documentation\n for detailed definitions of all terms.", + "type": "object", + "allOf": [ + { + "description": "MediaEnumeration enumerations are lists of codes, labels etc. useful for describing media objects. They may be reflections of externally developed lists, or created at schema.org, or a combination.", + "$ref": "schema:MediaEnumeration" + } + ] +} diff --git a/registry/schema-org/IceCreamShop.schema.json b/registry/schema-org/IceCreamShop.schema.json new file mode 100644 index 0000000..f8d6b1e --- /dev/null +++ b/registry/schema-org/IceCreamShop.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:IceCreamShop", + "title": "IceCreamShop", + "description": "An ice cream shop.", + "type": "object", + "allOf": [ + { + "description": "A food-related business.", + "$ref": "schema:FoodEstablishment" + } + ] +} diff --git a/registry/schema-org/IgnoreAction.schema.json b/registry/schema-org/IgnoreAction.schema.json new file mode 100644 index 0000000..11b8965 --- /dev/null +++ b/registry/schema-org/IgnoreAction.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:IgnoreAction", + "title": "IgnoreAction", + "description": "The act of intentionally disregarding the object. An agent ignores an object.", + "type": "object", + "allOf": [ + { + "description": "The act of forming one's opinion, reaction or sentiment.", + "$ref": "schema:AssessAction" + } + ] +} diff --git a/registry/schema-org/ImageGallery.schema.json b/registry/schema-org/ImageGallery.schema.json new file mode 100644 index 0000000..19ac9bf --- /dev/null +++ b/registry/schema-org/ImageGallery.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:ImageGallery", + "title": "ImageGallery", + "description": "Web page type: Image gallery page.", + "type": "object", + "allOf": [ + { + "description": "Web page type: Media gallery page. A mixed-media page that can contain media such as images, videos, and other multimedia.", + "$ref": "schema:MediaGallery" + } + ] +} diff --git a/registry/schema-org/ImageObject.json b/registry/schema-org/ImageObject.json deleted file mode 100644 index 597e1c6..0000000 --- a/registry/schema-org/ImageObject.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://schema.org/ImageObject", - "title": "ImageObject", - "description": "Minimal subset of schema.org/ImageObject for use in Recipe image property", - "type": "object", - "required": [ - "@type", - "url" - ], - "properties": { - "@type": { - "const": "ImageObject" - }, - "url": { - "$ref": "url.json" - }, - "caption": { - "type": "string", - "description": "A caption for the image." - }, - "width": { - "type": [ - "integer", - "string" - ], - "description": "Width of the image in pixels or as a string with unit." - }, - "height": { - "type": [ - "integer", - "string" - ], - "description": "Height of the image in pixels or as a string with unit." - } - }, - "additionalProperties": true -} diff --git a/registry/schema-org/ImageObject.schema.json b/registry/schema-org/ImageObject.schema.json new file mode 100644 index 0000000..6a1a938 --- /dev/null +++ b/registry/schema-org/ImageObject.schema.json @@ -0,0 +1,34 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:ImageObject", + "title": "ImageObject", + "description": "An image file.", + "type": "object", + "allOf": [ + { + "description": "A media object, such as an image, video, audio, or text 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).", + "$ref": "schema:MediaObject" + } + ], + "properties": { + "caption": { + "description": "The caption for this object. For downloadable machine formats (closed caption, subtitles etc.) use MediaObject and indicate the [[encodingFormat]].", + "anyOf": [{ "type": "string" }, { "$ref": "schema:MediaObject" }] + }, + "embeddedTextCaption": { + "description": "Represents textual captioning from a [[MediaObject]], e.g. text of a 'meme'.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "exifData": { + "description": "exif data for this object.", + "anyOf": [{ "type": "string" }, { "$ref": "schema:PropertyValue" }] + }, + "representativeOfPage": { + "description": "Indicates whether this image is representative of the content of the page.", + "type": "boolean" + } + } +} diff --git a/registry/schema-org/ImageObjectSnapshot.schema.json b/registry/schema-org/ImageObjectSnapshot.schema.json new file mode 100644 index 0000000..e81182f --- /dev/null +++ b/registry/schema-org/ImageObjectSnapshot.schema.json @@ -0,0 +1,8 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:ImageObjectSnapshot", + "title": "ImageObjectSnapshot", + "description": "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.", + "type": "object", + "allOf": [{ "description": "An image file.", "$ref": "schema:ImageObject" }] +} diff --git a/registry/schema-org/ImagingTest.schema.json b/registry/schema-org/ImagingTest.schema.json new file mode 100644 index 0000000..2512f25 --- /dev/null +++ b/registry/schema-org/ImagingTest.schema.json @@ -0,0 +1,25 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:ImagingTest", + "title": "ImagingTest", + "description": "Any medical imaging modality typically used for diagnostic purposes.", + "type": "object", + "allOf": [ + { + "description": "Any medical test, typically performed for diagnostic purposes.", + "$ref": "schema:MedicalTest" + } + ], + "properties": { + "imagingTechnique": { + "description": "Imaging technique used.", + "oneOf": [ + { "$ref": "schema:MedicalImagingTechnique" }, + { + "type": "array", + "items": { "$ref": "schema:MedicalImagingTechnique" } + } + ] + } + } +} diff --git a/registry/schema-org/IncentiveQualifiedExpenseType.schema.json b/registry/schema-org/IncentiveQualifiedExpenseType.schema.json new file mode 100644 index 0000000..9f335a3 --- /dev/null +++ b/registry/schema-org/IncentiveQualifiedExpenseType.schema.json @@ -0,0 +1,25 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:IncentiveQualifiedExpenseType", + "title": "IncentiveQualifiedExpenseType", + "description": "The types of expenses that are covered by the incentive. For example some incentives are only for the goods (tangible items) but the services (labor) are excluded.", + "type": "string", + "oneOf": [ + { + "description": "This incentive applies to goods only.", + "const": "IncentiveQualifiedExpenseTypeGoodsOnly" + }, + { + "description": "This incentive can apply to either goods or services (or both).", + "const": "IncentiveQualifiedExpenseTypeGoodsOrServices" + }, + { + "description": "This incentive applies to services only.", + "const": "IncentiveQualifiedExpenseTypeServicesOnly" + }, + { + "description": "This incentive applies to utility bills.", + "const": "IncentiveQualifiedExpenseTypeUtilityBill" + } + ] +} diff --git a/registry/schema-org/IncentiveStatus.schema.json b/registry/schema-org/IncentiveStatus.schema.json new file mode 100644 index 0000000..fd084a9 --- /dev/null +++ b/registry/schema-org/IncentiveStatus.schema.json @@ -0,0 +1,25 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:IncentiveStatus", + "title": "IncentiveStatus", + "description": "Enumerates a status for an incentive, such as whether it is active.", + "type": "string", + "oneOf": [ + { + "description": "This incentive is currently active.", + "const": "IncentiveStatusActive" + }, + { + "description": "This incentive is currently being developed, and may become active/retired in the future.", + "const": "IncentiveStatusInDevelopment" + }, + { + "description": "This incentive is currently active, but may not be accepting new applicants (e.g. max number of redemptions reached for a year)", + "const": "IncentiveStatusOnHold" + }, + { + "description": "This incentive is not longer available.", + "const": "IncentiveStatusRetired" + } + ] +} diff --git a/registry/schema-org/IncentiveType.schema.json b/registry/schema-org/IncentiveType.schema.json new file mode 100644 index 0000000..69dd344 --- /dev/null +++ b/registry/schema-org/IncentiveType.schema.json @@ -0,0 +1,29 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:IncentiveType", + "title": "IncentiveType", + "description": "Enumerates common financial incentives for products, including tax credits, tax deductions, rebates and subsidies, etc.", + "type": "string", + "oneOf": [ + { + "description": "An incentive where the recipient can receive additional funding for the purchase/lease of the good/service, which must be paid back.", + "const": "IncentiveTypeLoan" + }, + { + "description": "An incentive that reduces the purchase/lease cost of the good/service in question.", + "const": "IncentiveTypeRebateOrSubsidy" + }, + { + "description": "An incentive that directly reduces the amount of tax owed by the recipient.", + "const": "IncentiveTypeTaxCredit" + }, + { + "description": "An incentive that reduces the recipient's amount of taxable income.", + "const": "IncentiveTypeTaxDeduction" + }, + { + "description": "An incentive that reduces/exempts the recipient from taxation applicable to the incentivized good/service (e.g. luxury taxes, registration taxes, circulation tax).", + "const": "IncentiveTypeTaxWaiver" + } + ] +} diff --git a/registry/schema-org/IndividualPhysician.schema.json b/registry/schema-org/IndividualPhysician.schema.json new file mode 100644 index 0000000..0e3856e --- /dev/null +++ b/registry/schema-org/IndividualPhysician.schema.json @@ -0,0 +1,22 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:IndividualPhysician", + "title": "IndividualPhysician", + "description": "An individual medical practitioner. For their official address use [[address]], for affiliations to hospitals use [[hospitalAffiliation]]. \nThe [[practicesAt]] property can be used to indicate [[MedicalOrganization]] hospitals, clinics, pharmacies etc. where this physician practices.", + "type": "object", + "allOf": [ + { + "description": "An individual physician or a physician's office considered as a [[MedicalOrganization]].", + "$ref": "schema:Physician" + } + ], + "properties": { + "practicesAt": { + "description": "A [[MedicalOrganization]] where the [[IndividualPhysician]] practices.", + "oneOf": [ + { "$ref": "schema:MedicalOrganization" }, + { "type": "array", "items": { "$ref": "schema:MedicalOrganization" } } + ] + } + } +} diff --git a/registry/schema-org/IndividualProduct.schema.json b/registry/schema-org/IndividualProduct.schema.json new file mode 100644 index 0000000..c1950be --- /dev/null +++ b/registry/schema-org/IndividualProduct.schema.json @@ -0,0 +1,19 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:IndividualProduct", + "title": "IndividualProduct", + "description": "A single, identifiable product instance (e.g. a laptop with a particular serial number).", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:Product" + } + ], + "properties": { + "serialNumber": { + "description": "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.", + "type": "string" + } + } +} diff --git a/registry/schema-org/InfectiousAgentClass.schema.json b/registry/schema-org/InfectiousAgentClass.schema.json new file mode 100644 index 0000000..0608eca --- /dev/null +++ b/registry/schema-org/InfectiousAgentClass.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:InfectiousAgentClass", + "title": "InfectiousAgentClass", + "description": "Classes of agents or pathogens that transmit infectious diseases. Enumerated type.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:MedicalEnumeration" + } + ] +} diff --git a/registry/schema-org/InfectiousDisease.schema.json b/registry/schema-org/InfectiousDisease.schema.json new file mode 100644 index 0000000..3e48d91 --- /dev/null +++ b/registry/schema-org/InfectiousDisease.schema.json @@ -0,0 +1,30 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:InfectiousDisease", + "title": "InfectiousDisease", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:MedicalCondition" + } + ], + "properties": { + "infectiousAgent": { + "description": "The actual infectious agent, such as a specific bacterium.", + "type": "string" + }, + "infectiousAgentClass": { + "description": "The class of infectious agent (bacteria, prion, etc.) that causes the disease.", + "$ref": "schema:InfectiousAgentClass" + }, + "transmissionMethod": { + "description": "How the disease spreads, either as a route or vector, for example 'direct contact', 'Aedes aegypti', etc.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + } + } +} diff --git a/registry/schema-org/InformAction.schema.json b/registry/schema-org/InformAction.schema.json new file mode 100644 index 0000000..5d71545 --- /dev/null +++ b/registry/schema-org/InformAction.schema.json @@ -0,0 +1,22 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:InformAction", + "title": "InformAction", + "description": "The act of notifying someone of information pertinent to them, with no expectation of a response.", + "type": "object", + "allOf": [ + { + "description": "The act of conveying information to another person via a communication medium (instrument) such as speech, email, or telephone conversation.", + "$ref": "schema:CommunicateAction" + } + ], + "properties": { + "event": { + "description": "Upcoming or past event associated with this place, organization, or action.", + "oneOf": [ + { "$ref": "schema:Event" }, + { "type": "array", "items": { "$ref": "schema:Event" } } + ] + } + } +} diff --git a/registry/schema-org/InsertAction.schema.json b/registry/schema-org/InsertAction.schema.json new file mode 100644 index 0000000..8f0c8e9 --- /dev/null +++ b/registry/schema-org/InsertAction.schema.json @@ -0,0 +1,22 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:InsertAction", + "title": "InsertAction", + "description": "The act of adding at a specific location in an ordered collection.", + "type": "object", + "allOf": [ + { + "description": "The act of editing by adding an object to a collection.", + "$ref": "schema:AddAction" + } + ], + "properties": { + "toLocation": { + "description": "A sub property of location. The final location of the object or the agent after the action.", + "oneOf": [ + { "$ref": "schema:Place" }, + { "type": "array", "items": { "$ref": "schema:Place" } } + ] + } + } +} diff --git a/registry/schema-org/InstallAction.schema.json b/registry/schema-org/InstallAction.schema.json new file mode 100644 index 0000000..d8e5803 --- /dev/null +++ b/registry/schema-org/InstallAction.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:InstallAction", + "title": "InstallAction", + "description": "The act of installing an application.", + "type": "object", + "allOf": [ + { + "description": "The act of ingesting information/resources/food.", + "$ref": "schema:ConsumeAction" + } + ] +} diff --git a/registry/schema-org/InsuranceAgency.schema.json b/registry/schema-org/InsuranceAgency.schema.json new file mode 100644 index 0000000..b5cf3be --- /dev/null +++ b/registry/schema-org/InsuranceAgency.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:InsuranceAgency", + "title": "InsuranceAgency", + "description": "An Insurance agency.", + "type": "object", + "allOf": [ + { + "description": "Financial services business.", + "$ref": "schema:FinancialService" + } + ] +} diff --git a/registry/schema-org/Intangible.schema.json b/registry/schema-org/Intangible.schema.json new file mode 100644 index 0000000..1679c02 --- /dev/null +++ b/registry/schema-org/Intangible.schema.json @@ -0,0 +1,10 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Intangible", + "title": "Intangible", + "description": "A utility class that serves as the umbrella for a number of 'intangible' things such as quantities, structured values, etc.", + "type": "object", + "allOf": [ + { "description": "The most generic type of item.", "$ref": "schema:Thing" } + ] +} diff --git a/registry/schema-org/Integer.schema.json b/registry/schema-org/Integer.schema.json new file mode 100644 index 0000000..791da0e --- /dev/null +++ b/registry/schema-org/Integer.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Integer", + "title": "Integer", + "description": "Data type: Integer.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:Number" + } + ] +} diff --git a/registry/schema-org/InteractAction.schema.json b/registry/schema-org/InteractAction.schema.json new file mode 100644 index 0000000..1809267 --- /dev/null +++ b/registry/schema-org/InteractAction.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:InteractAction", + "title": "InteractAction", + "description": "The act of interacting with another person or organization.", + "type": "object", + "allOf": [ + { + "description": "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).", + "$ref": "schema:Action" + } + ] +} diff --git a/registry/schema-org/InteractionCounter.schema.json b/registry/schema-org/InteractionCounter.schema.json new file mode 100644 index 0000000..af5a903 --- /dev/null +++ b/registry/schema-org/InteractionCounter.schema.json @@ -0,0 +1,53 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:InteractionCounter", + "title": "InteractionCounter", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:StructuredValue" + } + ], + "properties": { + "endTime": { + "description": "The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it's the time offset of the end of a clip within a larger file.\\n\\nNote that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.", + "anyOf": [ + { "type": "string", "format": "date-time" }, + { "type": "string", "format": "time" } + ] + }, + "interactionService": { + "description": "The WebSite or SoftwareApplication where the interactions took place.", + "anyOf": [ + { "$ref": "schema:SoftwareApplication" }, + { "$ref": "schema:WebSite" } + ] + }, + "interactionType": { + "description": "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.", + "$ref": "schema:Action" + }, + "location": { + "description": "The location of, for example, where an event is happening, where an organization is located, or where an action takes place.", + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:Place" }, + { "$ref": "schema:PostalAddress" }, + { "$ref": "schema:VirtualLocation" } + ] + }, + "startTime": { + "description": "The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it's the time offset of the start of a clip within a larger file.\\n\\nNote that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.", + "anyOf": [ + { "type": "string", "format": "date-time" }, + { "type": "string", "format": "time" } + ] + }, + "userInteractionCount": { + "description": "The number of interactions for the CreativeWork using the WebSite or SoftwareApplication.", + "type": "integer" + } + } +} diff --git a/registry/schema-org/InternetCafe.schema.json b/registry/schema-org/InternetCafe.schema.json new file mode 100644 index 0000000..5665e81 --- /dev/null +++ b/registry/schema-org/InternetCafe.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:InternetCafe", + "title": "InternetCafe", + "description": "An internet cafe.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:LocalBusiness" + } + ] +} diff --git a/registry/schema-org/InvestmentFund.schema.json b/registry/schema-org/InvestmentFund.schema.json new file mode 100644 index 0000000..2f9fc16 --- /dev/null +++ b/registry/schema-org/InvestmentFund.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:InvestmentFund", + "title": "InvestmentFund", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "A type of financial product that typically requires the client to transfer funds to a financial service in return for potential beneficial financial return.", + "$ref": "schema:InvestmentOrDeposit" + } + ] +} diff --git a/registry/schema-org/InvestmentOrDeposit.schema.json b/registry/schema-org/InvestmentOrDeposit.schema.json new file mode 100644 index 0000000..07a29df --- /dev/null +++ b/registry/schema-org/InvestmentOrDeposit.schema.json @@ -0,0 +1,19 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:InvestmentOrDeposit", + "title": "InvestmentOrDeposit", + "description": "A type of financial product that typically requires the client to transfer funds to a financial service in return for potential beneficial financial return.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:FinancialProduct" + } + ], + "properties": { + "amount": { + "description": "The amount of money.", + "anyOf": [{ "type": "number" }, { "$ref": "schema:MonetaryAmount" }] + } + } +} diff --git a/registry/schema-org/InviteAction.schema.json b/registry/schema-org/InviteAction.schema.json new file mode 100644 index 0000000..c4221c3 --- /dev/null +++ b/registry/schema-org/InviteAction.schema.json @@ -0,0 +1,22 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:InviteAction", + "title": "InviteAction", + "description": "The act of asking someone to attend an event. Reciprocal of RsvpAction.", + "type": "object", + "allOf": [ + { + "description": "The act of conveying information to another person via a communication medium (instrument) such as speech, email, or telephone conversation.", + "$ref": "schema:CommunicateAction" + } + ], + "properties": { + "event": { + "description": "Upcoming or past event associated with this place, organization, or action.", + "oneOf": [ + { "$ref": "schema:Event" }, + { "type": "array", "items": { "$ref": "schema:Event" } } + ] + } + } +} diff --git a/registry/schema-org/Invoice.schema.json b/registry/schema-org/Invoice.schema.json new file mode 100644 index 0000000..7ce52ef --- /dev/null +++ b/registry/schema-org/Invoice.schema.json @@ -0,0 +1,132 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Invoice", + "title": "Invoice", + "description": "A statement of the money due for goods or services; a bill.", + "type": "object", + "allOf": [ + { + "description": "A utility class that serves as the umbrella for a number of 'intangible' things such as quantities, structured values, etc.", + "$ref": "schema:Intangible" + } + ], + "properties": { + "accountId": { + "description": "The identifier for the account the payment will be applied to.", + "type": "string" + }, + "billingPeriod": { + "description": "The time interval used to compute the invoice.", + "type": "string", + "$comment": "https://schema.org/Duration" + }, + "broker": { + "description": "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.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + } + } + ] + }, + "category": { + "description": "A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:CategoryCode" }, + { "$ref": "schema:PhysicalActivityCategory" }, + { "$ref": "schema:Thing" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:CategoryCode" }, + { "$ref": "schema:PhysicalActivityCategory" }, + { "$ref": "schema:Thing" } + ] + } + } + ] + }, + "confirmationNumber": { + "description": "A number that confirms the given order or payment has been received.", + "type": "string" + }, + "customer": { + "description": "Party placing the order or paying the invoice.", + "anyOf": [{ "$ref": "schema:Organization" }, { "$ref": "schema:Person" }] + }, + "minimumPaymentDue": { + "description": "The minimum payment required at this time.", + "anyOf": [ + { "$ref": "schema:MonetaryAmount" }, + { "$ref": "schema:PriceSpecification" } + ] + }, + "paymentDue": { + "description": "The date that payment is due.", + "type": "string", + "format": "date-time" + }, + "paymentDueDate": { + "description": "The date that payment is due.", + "anyOf": [ + { "type": "string", "format": "date" }, + { "type": "string", "format": "date-time" } + ] + }, + "paymentMethod": { + "description": "The name of the credit card or other method of payment for the order.", + "anyOf": [{ "type": "string" }, { "$ref": "schema:PaymentMethod" }] + }, + "paymentMethodId": { + "description": "An identifier for the method of payment used (e.g. the last 4 digits of the credit card).", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "paymentStatus": { + "description": "The status of payment; whether the invoice has been paid or not.", + "anyOf": [{ "type": "string" }, { "$ref": "schema:PaymentStatusType" }] + }, + "provider": { + "description": "The service provider, service operator, or service performer; the goods producer. Another party (a seller) may offer those services or goods on behalf of the provider. A provider may also serve as the seller.", + "anyOf": [{ "$ref": "schema:Organization" }, { "$ref": "schema:Person" }] + }, + "referencesOrder": { + "description": "The Order(s) related to this Invoice. One or more Orders may be combined into a single Invoice.", + "$ref": "schema:Order" + }, + "scheduledPaymentDate": { + "description": "The date the invoice is scheduled to be paid.", + "type": "string", + "format": "date" + }, + "totalPaymentDue": { + "description": "The total amount due.", + "anyOf": [ + { "$ref": "schema:MonetaryAmount" }, + { "$ref": "schema:PriceSpecification" } + ] + } + } +} diff --git a/registry/schema-org/ItemAvailability.schema.json b/registry/schema-org/ItemAvailability.schema.json new file mode 100644 index 0000000..b8d8311 --- /dev/null +++ b/registry/schema-org/ItemAvailability.schema.json @@ -0,0 +1,57 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:ItemAvailability", + "title": "ItemAvailability", + "description": "A list of possible product availability options.", + "type": "string", + "oneOf": [ + { + "description": "Indicates that the item is available on back order.", + "const": "BackOrder" + }, + { + "description": "Indicates that the item has been discontinued.", + "const": "Discontinued" + }, + { + "description": "Indicates that the item is in stock.", + "const": "InStock" + }, + { + "description": "Indicates that the item is available only at physical locations.", + "const": "InStoreOnly" + }, + { + "description": "Indicates that the item has limited availability.", + "const": "LimitedAvailability" + }, + { + "description": "Indicates that the item is made to order (custom made).", + "const": "MadeToOrder" + }, + { + "description": "Indicates that the item is available only online.", + "const": "OnlineOnly" + }, + { + "description": "Indicates that the item is out of stock.", + "const": "OutOfStock" + }, + { + "description": "Indicates that the item is available for pre-order.", + "const": "PreOrder" + }, + { + "description": "Indicates that the item is available for ordering and delivery before general availability.", + "const": "PreSale" + }, + { + "description": "Indicates that the item is reserved and therefore not available.", + "const": "Reserved" + }, + { + "description": "Indicates that the item has sold out.", + "const": "SoldOut" + } + ] +} diff --git a/registry/schema-org/ItemList.schema.json b/registry/schema-org/ItemList.schema.json new file mode 100644 index 0000000..75056d5 --- /dev/null +++ b/registry/schema-org/ItemList.schema.json @@ -0,0 +1,52 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:ItemList", + "title": "ItemList", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "A utility class that serves as the umbrella for a number of 'intangible' things such as quantities, structured values, etc.", + "$ref": "schema:Intangible" + } + ], + "properties": { + "aggregateElement": { + "description": "Indicates a prototype of the elements in the list that is used to hold aggregate information (ratings, offers, etc.).", + "oneOf": [ + { "$ref": "schema:Thing" }, + { "type": "array", "items": { "$ref": "schema:Thing" } } + ] + }, + "itemListElement": { + "description": "For itemListElement values, you can use simple strings (e.g. \"Peter\", \"Paul\", \"Mary\"), existing entities, or use ListItem.\\n\\nText 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.\\n\\nNote: 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.", + "oneOf": [ + { + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:ListItem" }, + { "$ref": "schema:Thing" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:ListItem" }, + { "$ref": "schema:Thing" } + ] + } + } + ] + }, + "itemListOrder": { + "description": "Type of ordering (e.g. Ascending, Descending, Unordered).", + "anyOf": [{ "type": "string" }, { "$ref": "schema:ItemListOrderType" }] + }, + "numberOfItems": { + "description": "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.", + "type": "integer" + } + } +} diff --git a/registry/schema-org/ItemListOrderType.schema.json b/registry/schema-org/ItemListOrderType.schema.json new file mode 100644 index 0000000..5344f35 --- /dev/null +++ b/registry/schema-org/ItemListOrderType.schema.json @@ -0,0 +1,21 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:ItemListOrderType", + "title": "ItemListOrderType", + "description": "Enumerated for values for itemListOrder for indicating how an ordered ItemList is organized.", + "type": "string", + "oneOf": [ + { + "description": "An ItemList ordered with lower values listed first.", + "const": "ItemListOrderAscending" + }, + { + "description": "An ItemList ordered with higher values listed first.", + "const": "ItemListOrderDescending" + }, + { + "description": "An ItemList ordered with no explicit order.", + "const": "ItemListUnordered" + } + ] +} diff --git a/registry/schema-org/ItemPage.schema.json b/registry/schema-org/ItemPage.schema.json new file mode 100644 index 0000000..b269368 --- /dev/null +++ b/registry/schema-org/ItemPage.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:ItemPage", + "title": "ItemPage", + "description": "A page devoted to a single item, such as a particular product or hotel.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:WebPage" + } + ] +} diff --git a/registry/schema-org/JewelryStore.schema.json b/registry/schema-org/JewelryStore.schema.json new file mode 100644 index 0000000..8cf41a5 --- /dev/null +++ b/registry/schema-org/JewelryStore.schema.json @@ -0,0 +1,8 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:JewelryStore", + "title": "JewelryStore", + "description": "A jewelry store.", + "type": "object", + "allOf": [{ "description": "A retail good store.", "$ref": "schema:Store" }] +} diff --git a/registry/schema-org/JobPosting.schema.json b/registry/schema-org/JobPosting.schema.json new file mode 100644 index 0000000..640c49a --- /dev/null +++ b/registry/schema-org/JobPosting.schema.json @@ -0,0 +1,308 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:JobPosting", + "title": "JobPosting", + "description": "A listing that describes a job opening in a certain organization.", + "type": "object", + "allOf": [ + { + "description": "A utility class that serves as the umbrella for a number of 'intangible' things such as quantities, structured values, etc.", + "$ref": "schema:Intangible" + } + ], + "properties": { + "applicantLocationRequirements": { + "description": "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.", + "$ref": "schema:AdministrativeArea" + }, + "applicationContact": { + "description": "Contact details for further information relevant to this job posting.", + "oneOf": [ + { "$ref": "schema:ContactPoint" }, + { "type": "array", "items": { "$ref": "schema:ContactPoint" } } + ] + }, + "baseSalary": { + "description": "The base salary of the job or of an employee in an EmployeeRole.", + "anyOf": [ + { "type": "number" }, + { "$ref": "schema:MonetaryAmount" }, + { "$ref": "schema:PriceSpecification" } + ] + }, + "benefits": { + "description": "Description of benefits associated with the job.", + "type": "string" + }, + "datePosted": { + "description": "Publication date of an online listing.", + "anyOf": [ + { "type": "string", "format": "date" }, + { "type": "string", "format": "date-time" } + ] + }, + "directApply": { + "description": "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.", + "type": "boolean" + }, + "educationRequirements": { + "description": "Educational background needed for the position or Occupation.", + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:EducationalOccupationalCredential" } + ] + }, + "eligibilityToWorkRequirement": { + "description": "The legal requirements such as citizenship, visa and other documentation required for an applicant to this job.", + "type": "string" + }, + "employerOverview": { + "description": "A description of the employer, career opportunities and work environment for this position.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "employmentType": { + "description": "Type of employment (e.g. full-time, part-time, contract, temporary, seasonal, internship).", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "employmentUnit": { + "description": "Indicates the department, unit and/or facility where the employee reports and/or in which the job is to be performed.", + "oneOf": [ + { "$ref": "schema:Organization" }, + { "type": "array", "items": { "$ref": "schema:Organization" } } + ] + }, + "estimatedSalary": { + "description": "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.", + "oneOf": [ + { + "anyOf": [ + { "type": "number" }, + { "$ref": "schema:MonetaryAmount" }, + { "$ref": "schema:MonetaryAmountDistribution" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "number" }, + { "$ref": "schema:MonetaryAmount" }, + { "$ref": "schema:MonetaryAmountDistribution" } + ] + } + } + ] + }, + "experienceInPlaceOfEducation": { + "description": "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.", + "type": "boolean" + }, + "experienceRequirements": { + "description": "Description of skills and experience needed for the position or Occupation.", + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:OccupationalExperienceRequirements" } + ] + }, + "hiringOrganization": { + "description": "Organization or Person offering the job position.", + "anyOf": [{ "$ref": "schema:Organization" }, { "$ref": "schema:Person" }] + }, + "incentiveCompensation": { + "description": "Description of bonus and commission compensation aspects of the job.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "incentives": { + "description": "Description of bonus and commission compensation aspects of the job.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "industry": { + "description": "The industry associated with the job position.", + "anyOf": [{ "type": "string" }, { "$ref": "schema:DefinedTerm" }] + }, + "jobBenefits": { + "description": "Description of benefits associated with the job.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "jobImmediateStart": { + "description": "An indicator as to whether a position is available for an immediate start.", + "type": "boolean" + }, + "jobLocation": { + "description": "A (typically single) geographic location associated with the job position.", + "oneOf": [ + { "$ref": "schema:Place" }, + { "type": "array", "items": { "$ref": "schema:Place" } } + ] + }, + "jobLocationType": { + "description": "A description of the job location (e.g. TELECOMMUTE for telecommute jobs).", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "jobStartDate": { + "description": "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.", + "anyOf": [{ "type": "string", "format": "date" }, { "type": "string" }] + }, + "occupationalCategory": { + "description": "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.\\n\nNote: for historical reasons, any textual label and formal code provided as a literal may be assumed to be from O*NET-SOC.", + "oneOf": [ + { "anyOf": [{ "type": "string" }, { "$ref": "schema:CategoryCode" }] }, + { + "type": "array", + "items": { + "anyOf": [{ "type": "string" }, { "$ref": "schema:CategoryCode" }] + } + } + ] + }, + "physicalRequirement": { + "description": "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.", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:DefinedTerm" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:DefinedTerm" } + ] + } + } + ] + }, + "qualifications": { + "description": "Specific qualifications required for this role or Occupation.", + "oneOf": [ + { + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:EducationalOccupationalCredential" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:EducationalOccupationalCredential" } + ] + } + } + ] + }, + "relevantOccupation": { + "description": "The Occupation for the JobPosting.", + "$ref": "schema:Occupation" + }, + "responsibilities": { + "description": "Responsibilities associated with this role or Occupation.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "salaryCurrency": { + "description": "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.", + "type": "string" + }, + "securityClearanceRequirement": { + "description": "A description of any security clearance requirements of the job.", + "oneOf": [ + { + "anyOf": [{ "type": "string", "format": "uri" }, { "type": "string" }] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" } + ] + } + } + ] + }, + "sensoryRequirement": { + "description": "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.", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:DefinedTerm" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:DefinedTerm" } + ] + } + } + ] + }, + "skills": { + "description": "A statement of knowledge, skill, ability, task or any other assertion expressing a competency that is either claimed by a person, an organization or desired or required to fulfill a role or to work in an occupation.", + "oneOf": [ + { "anyOf": [{ "type": "string" }, { "$ref": "schema:DefinedTerm" }] }, + { + "type": "array", + "items": { + "anyOf": [{ "type": "string" }, { "$ref": "schema:DefinedTerm" }] + } + } + ] + }, + "specialCommitments": { + "description": "Any special commitments associated with this job posting. Valid entries include VeteranCommit, MilitarySpouseCommit, etc.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "title": { "description": "The title of the job.", "type": "string" }, + "totalJobOpenings": { + "description": "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.", + "type": "integer" + }, + "validThrough": { + "description": "The date after when the item is not valid. For example the end of an offer, salary period, or a period of opening hours.", + "anyOf": [ + { "type": "string", "format": "date" }, + { "type": "string", "format": "date-time" } + ] + }, + "workHours": { + "description": "The typical working hours for this job (e.g. 1st shift, night shift, 8am-5pm).", + "type": "string" + } + } +} diff --git a/registry/schema-org/JoinAction.schema.json b/registry/schema-org/JoinAction.schema.json new file mode 100644 index 0000000..1237500 --- /dev/null +++ b/registry/schema-org/JoinAction.schema.json @@ -0,0 +1,22 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:JoinAction", + "title": "JoinAction", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "The act of interacting with another person or organization.", + "$ref": "schema:InteractAction" + } + ], + "properties": { + "event": { + "description": "Upcoming or past event associated with this place, organization, or action.", + "oneOf": [ + { "$ref": "schema:Event" }, + { "type": "array", "items": { "$ref": "schema:Event" } } + ] + } + } +} diff --git a/registry/schema-org/Joint.schema.json b/registry/schema-org/Joint.schema.json new file mode 100644 index 0000000..3587e55 --- /dev/null +++ b/registry/schema-org/Joint.schema.json @@ -0,0 +1,27 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Joint", + "title": "Joint", + "description": "The anatomical location at which two or more bones make contact.", + "type": "object", + "allOf": [ + { + "description": "Any part of the human body, typically a component of an anatomical system. Organs, tissues, and cells are all anatomical structures.", + "$ref": "schema:AnatomicalStructure" + } + ], + "properties": { + "biomechnicalClass": { + "description": "The biomechanical properties of the bone.", + "type": "string" + }, + "functionalClass": { + "description": "The degree of mobility the joint allows.", + "anyOf": [{ "type": "string" }, { "$ref": "schema:MedicalEntity" }] + }, + "structuralClass": { + "description": "The name given to how bone physically connects to each other.", + "type": "string" + } + } +} diff --git a/registry/schema-org/LakeBodyOfWater.schema.json b/registry/schema-org/LakeBodyOfWater.schema.json new file mode 100644 index 0000000..f6c0d98 --- /dev/null +++ b/registry/schema-org/LakeBodyOfWater.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:LakeBodyOfWater", + "title": "LakeBodyOfWater", + "description": "A lake (for example, Lake Pontrachain).", + "type": "object", + "allOf": [ + { + "description": "A body of water, such as a sea, ocean, or lake.", + "$ref": "schema:BodyOfWater" + } + ] +} diff --git a/registry/schema-org/Landform.schema.json b/registry/schema-org/Landform.schema.json new file mode 100644 index 0000000..8125e38 --- /dev/null +++ b/registry/schema-org/Landform.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Landform", + "title": "Landform", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "Entities that have a somewhat fixed, physical extension.", + "$ref": "schema:Place" + } + ] +} diff --git a/registry/schema-org/LandmarksOrHistoricalBuildings.schema.json b/registry/schema-org/LandmarksOrHistoricalBuildings.schema.json new file mode 100644 index 0000000..509195d --- /dev/null +++ b/registry/schema-org/LandmarksOrHistoricalBuildings.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:LandmarksOrHistoricalBuildings", + "title": "LandmarksOrHistoricalBuildings", + "description": "An historical landmark or building.", + "type": "object", + "allOf": [ + { + "description": "Entities that have a somewhat fixed, physical extension.", + "$ref": "schema:Place" + } + ] +} diff --git a/registry/schema-org/Language.schema.json b/registry/schema-org/Language.schema.json new file mode 100644 index 0000000..9d64956 --- /dev/null +++ b/registry/schema-org/Language.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Language", + "title": "Language", + "description": "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]].", + "type": "object", + "allOf": [ + { + "description": "A utility class that serves as the umbrella for a number of 'intangible' things such as quantities, structured values, etc.", + "$ref": "schema:Intangible" + } + ] +} diff --git a/registry/schema-org/LearningResource.schema.json b/registry/schema-org/LearningResource.schema.json new file mode 100644 index 0000000..5fb4b65 --- /dev/null +++ b/registry/schema-org/LearningResource.schema.json @@ -0,0 +1,68 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:LearningResource", + "title": "LearningResource", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "The most generic kind of creative work, including books, movies, photographs, software programs, etc.", + "$ref": "schema:CreativeWork" + } + ], + "properties": { + "assesses": { + "description": "The item being described is intended to assess the competency or learning outcome defined by the referenced term.", + "anyOf": [{ "type": "string" }, { "$ref": "schema:DefinedTerm" }] + }, + "competencyRequired": { + "description": "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.", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:DefinedTerm" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:DefinedTerm" } + ] + } + } + ] + }, + "educationalAlignment": { + "description": "An alignment to an established educational framework.\n\nThis property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.", + "oneOf": [ + { "$ref": "schema:AlignmentObject" }, + { "type": "array", "items": { "$ref": "schema:AlignmentObject" } } + ] + }, + "educationalLevel": { + "description": "The level in terms of progression through an educational or training context. Examples of educational levels include 'beginner', 'intermediate' or 'advanced', and formal sets of level indicators.", + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:DefinedTerm" } + ] + }, + "educationalUse": { + "description": "The purpose of a work in the context of education; for example, 'assignment', 'group work'.", + "anyOf": [{ "type": "string" }, { "$ref": "schema:DefinedTerm" }] + }, + "learningResourceType": { + "description": "The predominant type or kind characterizing the learning resource. For example, 'presentation', 'handout'.", + "anyOf": [{ "type": "string" }, { "$ref": "schema:DefinedTerm" }] + }, + "teaches": { + "description": "The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.", + "anyOf": [{ "type": "string" }, { "$ref": "schema:DefinedTerm" }] + } + } +} diff --git a/registry/schema-org/LeaveAction.schema.json b/registry/schema-org/LeaveAction.schema.json new file mode 100644 index 0000000..a2a87bd --- /dev/null +++ b/registry/schema-org/LeaveAction.schema.json @@ -0,0 +1,22 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:LeaveAction", + "title": "LeaveAction", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "The act of interacting with another person or organization.", + "$ref": "schema:InteractAction" + } + ], + "properties": { + "event": { + "description": "Upcoming or past event associated with this place, organization, or action.", + "oneOf": [ + { "$ref": "schema:Event" }, + { "type": "array", "items": { "$ref": "schema:Event" } } + ] + } + } +} diff --git a/registry/schema-org/LegalForceStatus.schema.json b/registry/schema-org/LegalForceStatus.schema.json new file mode 100644 index 0000000..2ccd3d7 --- /dev/null +++ b/registry/schema-org/LegalForceStatus.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:LegalForceStatus", + "title": "LegalForceStatus", + "description": "A list of possible statuses for the legal force of a legislation.", + "type": "object", + "allOf": [ + { + "description": "Lists or enumerations dealing with status types.", + "$ref": "schema:StatusEnumeration" + } + ] +} diff --git a/registry/schema-org/LegalService.schema.json b/registry/schema-org/LegalService.schema.json new file mode 100644 index 0000000..93d3584 --- /dev/null +++ b/registry/schema-org/LegalService.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:LegalService", + "title": "LegalService", + "description": "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).", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:LocalBusiness" + } + ] +} diff --git a/registry/schema-org/LegalValueLevel.schema.json b/registry/schema-org/LegalValueLevel.schema.json new file mode 100644 index 0000000..8f58a8f --- /dev/null +++ b/registry/schema-org/LegalValueLevel.schema.json @@ -0,0 +1,25 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:LegalValueLevel", + "title": "LegalValueLevel", + "description": "A list of possible levels for the legal validity of a legislation.", + "type": "string", + "oneOf": [ + { + "description": "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]]\".", + "const": "AuthoritativeLegalValue" + }, + { + "description": "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]].", + "const": "DefinitiveLegalValue" + }, + { + "description": "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 a EU directive published by the EU Office of Publications).", + "const": "OfficialLegalValue" + }, + { + "description": "Indicates that a document has no particular or special standing (e.g. a republication of a law by a private publisher).", + "const": "UnofficialLegalValue" + } + ] +} diff --git a/registry/schema-org/Legislation.schema.json b/registry/schema-org/Legislation.schema.json new file mode 100644 index 0000000..61a7078 --- /dev/null +++ b/registry/schema-org/Legislation.schema.json @@ -0,0 +1,173 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Legislation", + "title": "Legislation", + "description": "A legal document such as an act, decree, bill, etc. (enforceable or not) or a component of a legal act (like an article).", + "type": "object", + "allOf": [ + { + "description": "The most generic kind of creative work, including books, movies, photographs, software programs, etc.", + "$ref": "schema:CreativeWork" + } + ], + "properties": { + "jurisdiction": { + "description": "Indicates a legal jurisdiction, e.g. of some legislation, or where some government service is based.", + "oneOf": [ + { + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:AdministrativeArea" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:AdministrativeArea" } + ] + } + } + ] + }, + "legislationAmends": { + "description": "Another legislation that this legislation amends, introducing legal changes.", + "oneOf": [ + { "$ref": "schema:Legislation" }, + { "type": "array", "items": { "$ref": "schema:Legislation" } } + ] + }, + "legislationApplies": { + "description": "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.", + "oneOf": [ + { "$ref": "schema:Legislation" }, + { "type": "array", "items": { "$ref": "schema:Legislation" } } + ] + }, + "legislationChanges": { + "description": "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.", + "oneOf": [ + { "$ref": "schema:Legislation" }, + { "type": "array", "items": { "$ref": "schema:Legislation" } } + ] + }, + "legislationCommences": { + "description": "Another legislation that this one sets into force.", + "oneOf": [ + { "$ref": "schema:Legislation" }, + { "type": "array", "items": { "$ref": "schema:Legislation" } } + ] + }, + "legislationConsolidates": { + "description": "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.", + "oneOf": [ + { "$ref": "schema:Legislation" }, + { "type": "array", "items": { "$ref": "schema:Legislation" } } + ] + }, + "legislationCorrects": { + "description": "Another legislation in which this one introduces textual changes, like correction of spelling mistakes, with no legal impact (for modifications that have legal impact, use legislationAmends).", + "oneOf": [ + { "$ref": "schema:Legislation" }, + { "type": "array", "items": { "$ref": "schema:Legislation" } } + ] + }, + "legislationCountersignedBy": { + "description": "The person or organization that countersigned the legislation. Depending on the legal context, a countersignature can indicate that the signed authority undertakes to assume responsibility for texts emanating from a person who is inviolable and irresponsible, (for example a King, Grand Duc or President), or that the authority is in charge of the implementation of the text.", + "anyOf": [{ "$ref": "schema:Organization" }, { "$ref": "schema:Person" }] + }, + "legislationDate": { + "description": "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.", + "type": "string", + "format": "date" + }, + "legislationDateOfApplicability": { + "description": "The date at which the Legislation becomes applicable. This can sometimes be distinct from the date of entry into force : a text may come in force today, and state it will become applicable in 3 months.", + "type": "string", + "format": "date" + }, + "legislationDateVersion": { + "description": "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\")", + "type": "string", + "format": "date" + }, + "legislationEnsuresImplementationOf": { + "description": "Indicates that this Legislation ensures the implementation of another Legislation, for example by modifying national legislations so that they do not contradict to an EU regulation or decision. This implies a legal meaning. Transpositions of EU Directive should be captured with legislationTransposes.", + "oneOf": [ + { "$ref": "schema:Legislation" }, + { "type": "array", "items": { "$ref": "schema:Legislation" } } + ] + }, + "legislationIdentifier": { + "description": "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.", + "oneOf": [ + { + "anyOf": [{ "type": "string", "format": "uri" }, { "type": "string" }] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" } + ] + } + } + ] + }, + "legislationJurisdiction": { + "description": "The jurisdiction from which the legislation originates.", + "anyOf": [{ "type": "string" }, { "$ref": "schema:AdministrativeArea" }] + }, + "legislationLegalForce": { + "description": "Whether the legislation is currently in force, not in force, or partially in force.", + "oneOf": [ + { "$ref": "schema:LegalForceStatus" }, + { "type": "array", "items": { "$ref": "schema:LegalForceStatus" } } + ] + }, + "legislationPassedBy": { + "description": "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.", + "anyOf": [{ "$ref": "schema:Organization" }, { "$ref": "schema:Person" }] + }, + "legislationRepeals": { + "description": "Another legislation that this legislation repeals (cancels, abrogates).", + "oneOf": [ + { "$ref": "schema:Legislation" }, + { "type": "array", "items": { "$ref": "schema:Legislation" } } + ] + }, + "legislationResponsible": { + "description": "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.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + } + } + ] + }, + "legislationTransposes": { + "description": "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.", + "oneOf": [ + { "$ref": "schema:Legislation" }, + { "type": "array", "items": { "$ref": "schema:Legislation" } } + ] + }, + "legislationType": { + "description": "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.", + "anyOf": [{ "type": "string" }, { "$ref": "schema:CategoryCode" }] + } + } +} diff --git a/registry/schema-org/LegislationObject.schema.json b/registry/schema-org/LegislationObject.schema.json new file mode 100644 index 0000000..054fe8d --- /dev/null +++ b/registry/schema-org/LegislationObject.schema.json @@ -0,0 +1,23 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:LegislationObject", + "title": "LegislationObject", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "A legal document such as an act, decree, bill, etc. (enforceable or not) or a component of a legal act (like an article).", + "$ref": "schema:Legislation" + }, + { + "description": "A media object, such as an image, video, audio, or text 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).", + "$ref": "schema:MediaObject" + } + ], + "properties": { + "legislationLegalValue": { + "description": "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.", + "$ref": "schema:LegalValueLevel" + } + } +} diff --git a/registry/schema-org/LegislativeBuilding.schema.json b/registry/schema-org/LegislativeBuilding.schema.json new file mode 100644 index 0000000..d11b699 --- /dev/null +++ b/registry/schema-org/LegislativeBuilding.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:LegislativeBuilding", + "title": "LegislativeBuilding", + "description": "A legislative building—for example, the state capitol.", + "type": "object", + "allOf": [ + { + "description": "A government building.", + "$ref": "schema:GovernmentBuilding" + } + ] +} diff --git a/registry/schema-org/LendAction.schema.json b/registry/schema-org/LendAction.schema.json new file mode 100644 index 0000000..b1a86bd --- /dev/null +++ b/registry/schema-org/LendAction.schema.json @@ -0,0 +1,22 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:LendAction", + "title": "LendAction", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "The act of transferring/moving (abstract or concrete) animate or inanimate objects from one place to another.", + "$ref": "schema:TransferAction" + } + ], + "properties": { + "borrower": { + "description": "A sub property of participant. The person that borrows the object being lent.", + "oneOf": [ + { "$ref": "schema:Person" }, + { "type": "array", "items": { "$ref": "schema:Person" } } + ] + } + } +} diff --git a/registry/schema-org/Library.schema.json b/registry/schema-org/Library.schema.json new file mode 100644 index 0000000..5d761b1 --- /dev/null +++ b/registry/schema-org/Library.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Library", + "title": "Library", + "description": "A library.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:LocalBusiness" + } + ] +} diff --git a/registry/schema-org/LibrarySystem.schema.json b/registry/schema-org/LibrarySystem.schema.json new file mode 100644 index 0000000..18d5a2d --- /dev/null +++ b/registry/schema-org/LibrarySystem.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:LibrarySystem", + "title": "LibrarySystem", + "description": "A [[LibrarySystem]] is a collaborative system amongst several libraries.", + "type": "object", + "allOf": [ + { + "description": "An organization such as a school, NGO, corporation, club, etc.", + "$ref": "schema:Organization" + } + ] +} diff --git a/registry/schema-org/LifestyleModification.schema.json b/registry/schema-org/LifestyleModification.schema.json new file mode 100644 index 0000000..002ac63 --- /dev/null +++ b/registry/schema-org/LifestyleModification.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:LifestyleModification", + "title": "LifestyleModification", + "description": "A process of care involving exercise, changes to diet, fitness routines, and other lifestyle changes aimed at improving a health condition.", + "type": "object", + "allOf": [ + { + "description": "The most generic type of entity related to health and the practice of medicine.", + "$ref": "schema:MedicalEntity" + } + ] +} diff --git a/registry/schema-org/Ligament.schema.json b/registry/schema-org/Ligament.schema.json new file mode 100644 index 0000000..c4528b9 --- /dev/null +++ b/registry/schema-org/Ligament.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Ligament", + "title": "Ligament", + "description": "A short band of tough, flexible, fibrous connective tissue that functions to connect multiple bones, cartilages, and structurally support joints.", + "type": "object", + "allOf": [ + { + "description": "Any part of the human body, typically a component of an anatomical system. Organs, tissues, and cells are all anatomical structures.", + "$ref": "schema:AnatomicalStructure" + } + ] +} diff --git a/registry/schema-org/LikeAction.schema.json b/registry/schema-org/LikeAction.schema.json new file mode 100644 index 0000000..22710e1 --- /dev/null +++ b/registry/schema-org/LikeAction.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:LikeAction", + "title": "LikeAction", + "description": "The act of expressing a positive sentiment about the object. An agent likes an object (a proposition, topic or theme) with participants.", + "type": "object", + "allOf": [ + { + "description": "The act of responding instinctively and emotionally to an object, expressing a sentiment.", + "$ref": "schema:ReactAction" + } + ] +} diff --git a/registry/schema-org/LinkRole.schema.json b/registry/schema-org/LinkRole.schema.json new file mode 100644 index 0000000..9066c67 --- /dev/null +++ b/registry/schema-org/LinkRole.schema.json @@ -0,0 +1,26 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:LinkRole", + "title": "LinkRole", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "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).", + "$ref": "schema:Role" + } + ], + "properties": { + "inLanguage": { + "description": "The language of the content or performance or used in an action. Please use one of the language codes from the [IETF BCP 47 standard](http://tools.ietf.org/html/bcp47). See also [[availableLanguage]].", + "anyOf": [{ "type": "string" }, { "$ref": "schema:Language" }] + }, + "linkRelationship": { + "description": "Indicates the relationship type of a Web link. ", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + } + } +} diff --git a/registry/schema-org/LiquorStore.schema.json b/registry/schema-org/LiquorStore.schema.json new file mode 100644 index 0000000..8cd8a89 --- /dev/null +++ b/registry/schema-org/LiquorStore.schema.json @@ -0,0 +1,8 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:LiquorStore", + "title": "LiquorStore", + "description": "A shop that sells alcoholic drinks such as wine, beer, whisky and other spirits.", + "type": "object", + "allOf": [{ "description": "A retail good store.", "$ref": "schema:Store" }] +} diff --git a/registry/schema-org/ListItem.schema.json b/registry/schema-org/ListItem.schema.json new file mode 100644 index 0000000..77a4dc4 --- /dev/null +++ b/registry/schema-org/ListItem.schema.json @@ -0,0 +1,40 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:ListItem", + "title": "ListItem", + "description": "An list item, e.g. a step in a checklist or how-to description.", + "type": "object", + "allOf": [ + { + "description": "A utility class that serves as the umbrella for a number of 'intangible' things such as quantities, structured values, etc.", + "$ref": "schema:Intangible" + } + ], + "properties": { + "item": { + "description": "An entity represented by an entry in a list or data feed (e.g. an 'artist' in a list of 'artists').", + "oneOf": [ + { "$ref": "schema:Thing" }, + { "type": "array", "items": { "$ref": "schema:Thing" } } + ] + }, + "nextItem": { + "description": "A link to the ListItem that follows the current one.", + "oneOf": [ + { "$ref": "schema:ListItem" }, + { "type": "array", "items": { "$ref": "schema:ListItem" } } + ] + }, + "position": { + "description": "The position of an item in a series or sequence of items.", + "anyOf": [{ "type": "integer" }, { "type": "string" }] + }, + "previousItem": { + "description": "A link to the ListItem that precedes the current one.", + "oneOf": [ + { "$ref": "schema:ListItem" }, + { "type": "array", "items": { "$ref": "schema:ListItem" } } + ] + } + } +} diff --git a/registry/schema-org/ListenAction.schema.json b/registry/schema-org/ListenAction.schema.json new file mode 100644 index 0000000..8a2dd4c --- /dev/null +++ b/registry/schema-org/ListenAction.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:ListenAction", + "title": "ListenAction", + "description": "The act of consuming audio content.", + "type": "object", + "allOf": [ + { + "description": "The act of ingesting information/resources/food.", + "$ref": "schema:ConsumeAction" + } + ] +} diff --git a/registry/schema-org/LiteraryEvent.schema.json b/registry/schema-org/LiteraryEvent.schema.json new file mode 100644 index 0000000..663aec0 --- /dev/null +++ b/registry/schema-org/LiteraryEvent.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:LiteraryEvent", + "title": "LiteraryEvent", + "description": "Event type: Literary event.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:Event" + } + ] +} diff --git a/registry/schema-org/LiveBlogPosting.schema.json b/registry/schema-org/LiveBlogPosting.schema.json new file mode 100644 index 0000000..ad8f280 --- /dev/null +++ b/registry/schema-org/LiveBlogPosting.schema.json @@ -0,0 +1,27 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:LiveBlogPosting", + "title": "LiveBlogPosting", + "description": "A [[LiveBlogPosting]] is a [[BlogPosting]] intended to provide a rolling textual coverage of an ongoing event through continuous updates.", + "type": "object", + "allOf": [{ "description": "A blog post.", "$ref": "schema:BlogPosting" }], + "properties": { + "coverageEndTime": { + "description": "The time when the live blog will stop covering the Event. Note that coverage may continue after the Event concludes.", + "type": "string", + "format": "date-time" + }, + "coverageStartTime": { + "description": "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.", + "type": "string", + "format": "date-time" + }, + "liveBlogUpdate": { + "description": "An update to the LiveBlog.", + "oneOf": [ + { "$ref": "schema:BlogPosting" }, + { "type": "array", "items": { "$ref": "schema:BlogPosting" } } + ] + } + } +} diff --git a/registry/schema-org/LoanOrCredit.schema.json b/registry/schema-org/LoanOrCredit.schema.json new file mode 100644 index 0000000..302bd46 --- /dev/null +++ b/registry/schema-org/LoanOrCredit.schema.json @@ -0,0 +1,66 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:LoanOrCredit", + "title": "LoanOrCredit", + "description": "A financial product for the loaning of an amount of money, or line of credit, under agreed terms and charges.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:FinancialProduct" + } + ], + "properties": { + "amount": { + "description": "The amount of money.", + "anyOf": [{ "type": "number" }, { "$ref": "schema:MonetaryAmount" }] + }, + "currency": { + "description": "The currency in which the monetary amount is expressed.\\n\\nUse standard formats: [ISO 4217 currency format](http://en.wikipedia.org/wiki/ISO_4217), e.g. \"USD\"; [Ticker symbol](https://en.wikipedia.org/wiki/List_of_cryptocurrencies) for cryptocurrencies, e.g. \"BTC\"; well known names for [Local Exchange Trading Systems](https://en.wikipedia.org/wiki/Local_exchange_trading_system) (LETS) and other currency types, e.g. \"Ithaca HOUR\".", + "type": "string" + }, + "gracePeriod": { + "description": "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.", + "type": "string", + "$comment": "https://schema.org/Duration" + }, + "loanRepaymentForm": { + "description": "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.", + "oneOf": [ + { "$ref": "schema:RepaymentSpecification" }, + { + "type": "array", + "items": { "$ref": "schema:RepaymentSpecification" } + } + ] + }, + "loanTerm": { + "description": "The duration of the loan or credit agreement.", + "$ref": "schema:QuantitativeValue" + }, + "loanType": { + "description": "The type of a loan or credit.", + "anyOf": [{ "type": "string", "format": "uri" }, { "type": "string" }] + }, + "recourseLoan": { + "description": "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.", + "type": "boolean" + }, + "renegotiableLoan": { + "description": "Whether the terms for payment of interest can be renegotiated during the life of the loan.", + "type": "boolean" + }, + "requiredCollateral": { + "description": "Assets required to secure loan or credit repayments. It may take form of third party pledge, goods, financial instruments (cash, securities, etc.)", + "oneOf": [ + { "anyOf": [{ "type": "string" }, { "$ref": "schema:Thing" }] }, + { + "type": "array", + "items": { + "anyOf": [{ "type": "string" }, { "$ref": "schema:Thing" }] + } + } + ] + } + } +} diff --git a/registry/schema-org/LocalBusiness.schema.json b/registry/schema-org/LocalBusiness.schema.json new file mode 100644 index 0000000..548a733 --- /dev/null +++ b/registry/schema-org/LocalBusiness.schema.json @@ -0,0 +1,42 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:LocalBusiness", + "title": "LocalBusiness", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "An organization such as a school, NGO, corporation, club, etc.", + "$ref": "schema:Organization" + }, + { + "description": "Entities that have a somewhat fixed, physical extension.", + "$ref": "schema:Place" + } + ], + "properties": { + "branchOf": { + "description": "The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].", + "$ref": "schema:Organization" + }, + "currenciesAccepted": { + "description": "The currency accepted.\\n\\nUse standard formats: [ISO 4217 currency format](http://en.wikipedia.org/wiki/ISO_4217), e.g. \"USD\"; [Ticker symbol](https://en.wikipedia.org/wiki/List_of_cryptocurrencies) for cryptocurrencies, e.g. \"BTC\"; well known names for [Local Exchange Trading Systems](https://en.wikipedia.org/wiki/Local_exchange_trading_system) (LETS) and other currency types, e.g. \"Ithaca HOUR\".", + "type": "string" + }, + "openingHours": { + "description": "The general opening hours for a business. Opening hours can be specified as a weekly time range, starting with days, then times per day. Multiple days can be listed with commas ',' separating each day. Day or time ranges are specified using a hyphen '-'.\\n\\n* Days are specified using the following two-letter combinations: ```Mo```, ```Tu```, ```We```, ```Th```, ```Fr```, ```Sa```, ```Su```.\\n* Times are specified using 24:00 format. For example, 3pm is specified as ```15:00```, 10am as ```10:00```. \\n* Here is an example: .\\n* If a business is open 7 days a week, then it can be specified as .", + "type": "string" + }, + "paymentAccepted": { + "description": "Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "priceRange": { + "description": "The price range of the business, for example ```$$$```.", + "type": "string" + } + } +} diff --git a/registry/schema-org/LocationFeatureSpecification.schema.json b/registry/schema-org/LocationFeatureSpecification.schema.json new file mode 100644 index 0000000..a2ada0b --- /dev/null +++ b/registry/schema-org/LocationFeatureSpecification.schema.json @@ -0,0 +1,33 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:LocationFeatureSpecification", + "title": "LocationFeatureSpecification", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "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 ", + "$ref": "schema:PropertyValue" + } + ], + "properties": { + "hoursAvailable": { + "description": "The hours during which this service or contact is available.", + "$ref": "schema:OpeningHoursSpecification" + }, + "validFrom": { + "description": "The date when the item becomes valid.", + "anyOf": [ + { "type": "string", "format": "date" }, + { "type": "string", "format": "date-time" } + ] + }, + "validThrough": { + "description": "The date after when the item is not valid. For example the end of an offer, salary period, or a period of opening hours.", + "anyOf": [ + { "type": "string", "format": "date" }, + { "type": "string", "format": "date-time" } + ] + } + } +} diff --git a/registry/schema-org/Locksmith.schema.json b/registry/schema-org/Locksmith.schema.json new file mode 100644 index 0000000..5929fa7 --- /dev/null +++ b/registry/schema-org/Locksmith.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Locksmith", + "title": "Locksmith", + "description": "A locksmith.", + "type": "object", + "allOf": [ + { + "description": "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).", + "$ref": "schema:HomeAndConstructionBusiness" + } + ] +} diff --git a/registry/schema-org/LodgingBusiness.schema.json b/registry/schema-org/LodgingBusiness.schema.json new file mode 100644 index 0000000..0d2daeb --- /dev/null +++ b/registry/schema-org/LodgingBusiness.schema.json @@ -0,0 +1,70 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:LodgingBusiness", + "title": "LodgingBusiness", + "description": "A lodging business, such as a motel, hotel, or inn.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:LocalBusiness" + } + ], + "properties": { + "amenityFeature": { + "description": "An amenity feature (e.g. a characteristic or service) of the Accommodation. This generic property does not make a statement about whether the feature is included in an offer for the main accommodation or available at extra costs.", + "oneOf": [ + { "$ref": "schema:LocationFeatureSpecification" }, + { + "type": "array", + "items": { "$ref": "schema:LocationFeatureSpecification" } + } + ] + }, + "audience": { + "description": "An intended audience, i.e. a group for whom something was created.", + "$ref": "schema:Audience" + }, + "availableLanguage": { + "description": "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]].", + "oneOf": [ + { "anyOf": [{ "type": "string" }, { "$ref": "schema:Language" }] }, + { + "type": "array", + "items": { + "anyOf": [{ "type": "string" }, { "$ref": "schema:Language" }] + } + } + ] + }, + "checkinTime": { + "description": "The earliest someone may check into a lodging establishment.", + "anyOf": [ + { "type": "string", "format": "date-time" }, + { "type": "string", "format": "time" } + ] + }, + "checkoutTime": { + "description": "The latest someone may check out of a lodging establishment.", + "anyOf": [ + { "type": "string", "format": "date-time" }, + { "type": "string", "format": "time" } + ] + }, + "numberOfRooms": { + "description": "The number of rooms (excluding bathrooms and closets) of the accommodation or lodging business.\nTypical 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.", + "anyOf": [{ "type": "number" }, { "$ref": "schema:QuantitativeValue" }] + }, + "petsAllowed": { + "description": "Indicates whether pets are allowed to enter the accommodation or lodging business. More detailed information can be put in a text value.", + "anyOf": [{ "type": "boolean" }, { "type": "string" }] + }, + "starRating": { + "description": "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).", + "oneOf": [ + { "$ref": "schema:Rating" }, + { "type": "array", "items": { "$ref": "schema:Rating" } } + ] + } + } +} diff --git a/registry/schema-org/LodgingReservation.schema.json b/registry/schema-org/LodgingReservation.schema.json new file mode 100644 index 0000000..d2e3bce --- /dev/null +++ b/registry/schema-org/LodgingReservation.schema.json @@ -0,0 +1,61 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:LodgingReservation", + "title": "LodgingReservation", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "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]].", + "$ref": "schema:Reservation" + } + ], + "properties": { + "checkinTime": { + "description": "The earliest someone may check into a lodging establishment.", + "anyOf": [ + { "type": "string", "format": "date-time" }, + { "type": "string", "format": "time" } + ] + }, + "checkoutTime": { + "description": "The latest someone may check out of a lodging establishment.", + "anyOf": [ + { "type": "string", "format": "date-time" }, + { "type": "string", "format": "time" } + ] + }, + "lodgingUnitDescription": { + "description": "A full description of the lodging unit.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "lodgingUnitType": { + "description": "Textual description of the unit type (including suite vs. room, size of bed, etc.).", + "oneOf": [ + { + "anyOf": [{ "type": "string" }, { "$ref": "schema:QualitativeValue" }] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:QualitativeValue" } + ] + } + } + ] + }, + "numAdults": { + "description": "The number of adults staying in the unit.", + "anyOf": [{ "type": "integer" }, { "$ref": "schema:QuantitativeValue" }] + }, + "numChildren": { + "description": "The number of children staying in the unit.", + "anyOf": [{ "type": "integer" }, { "$ref": "schema:QuantitativeValue" }] + } + } +} diff --git a/registry/schema-org/LoseAction.schema.json b/registry/schema-org/LoseAction.schema.json new file mode 100644 index 0000000..cefbb92 --- /dev/null +++ b/registry/schema-org/LoseAction.schema.json @@ -0,0 +1,22 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:LoseAction", + "title": "LoseAction", + "description": "The act of being defeated in a competitive activity.", + "type": "object", + "allOf": [ + { + "description": "The act of accomplishing something via previous efforts. It is an instantaneous action rather than an ongoing process.", + "$ref": "schema:AchieveAction" + } + ], + "properties": { + "winner": { + "description": "A sub property of participant. The winner of the action.", + "oneOf": [ + { "$ref": "schema:Person" }, + { "type": "array", "items": { "$ref": "schema:Person" } } + ] + } + } +} diff --git a/registry/schema-org/LymphaticVessel.schema.json b/registry/schema-org/LymphaticVessel.schema.json new file mode 100644 index 0000000..b0788df --- /dev/null +++ b/registry/schema-org/LymphaticVessel.schema.json @@ -0,0 +1,30 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:LymphaticVessel", + "title": "LymphaticVessel", + "description": "A type of blood vessel that specifically carries lymph fluid unidirectionally toward the heart.", + "type": "object", + "allOf": [ + { + "description": "A component of the human body circulatory system comprised of an intricate network of hollow tubes that transport blood throughout the entire body.", + "$ref": "schema:Vessel" + } + ], + "properties": { + "originatesFrom": { + "description": "The vasculature the lymphatic structure originates, or afferents, from.", + "$ref": "schema:Vessel" + }, + "regionDrained": { + "description": "The anatomical or organ system drained by this vessel; generally refers to a specific part of an organ.", + "anyOf": [ + { "$ref": "schema:AnatomicalStructure" }, + { "$ref": "schema:AnatomicalSystem" } + ] + }, + "runsTo": { + "description": "The vasculature the lymphatic structure runs, or efferents, to.", + "$ref": "schema:Vessel" + } + } +} diff --git a/registry/schema-org/Manuscript.schema.json b/registry/schema-org/Manuscript.schema.json new file mode 100644 index 0000000..20d4a3c --- /dev/null +++ b/registry/schema-org/Manuscript.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Manuscript", + "title": "Manuscript", + "description": "A book, document, or piece of music written by hand rather than typed or printed.", + "type": "object", + "allOf": [ + { + "description": "The most generic kind of creative work, including books, movies, photographs, software programs, etc.", + "$ref": "schema:CreativeWork" + } + ] +} diff --git a/registry/schema-org/Map.schema.json b/registry/schema-org/Map.schema.json new file mode 100644 index 0000000..e01037c --- /dev/null +++ b/registry/schema-org/Map.schema.json @@ -0,0 +1,22 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Map", + "title": "Map", + "description": "A map.", + "type": "object", + "allOf": [ + { + "description": "The most generic kind of creative work, including books, movies, photographs, software programs, etc.", + "$ref": "schema:CreativeWork" + } + ], + "properties": { + "mapType": { + "description": "Indicates the kind of Map, from the MapCategoryType Enumeration.", + "oneOf": [ + { "$ref": "schema:MapCategoryType" }, + { "type": "array", "items": { "$ref": "schema:MapCategoryType" } } + ] + } + } +} diff --git a/registry/schema-org/MapCategoryType.schema.json b/registry/schema-org/MapCategoryType.schema.json new file mode 100644 index 0000000..857def9 --- /dev/null +++ b/registry/schema-org/MapCategoryType.schema.json @@ -0,0 +1,16 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:MapCategoryType", + "title": "MapCategoryType", + "description": "An enumeration of several kinds of Map.", + "type": "string", + "oneOf": [ + { "description": "A parking map.", "const": "ParkingMap" }, + { "description": "A seating map.", "const": "SeatingMap" }, + { "description": "A transit map.", "const": "TransitMap" }, + { + "description": "A venue map (e.g. for malls, auditoriums, museums, etc.).", + "const": "VenueMap" + } + ] +} diff --git a/registry/schema-org/MarryAction.schema.json b/registry/schema-org/MarryAction.schema.json new file mode 100644 index 0000000..3aeae36 --- /dev/null +++ b/registry/schema-org/MarryAction.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:MarryAction", + "title": "MarryAction", + "description": "The act of marrying a person.", + "type": "object", + "allOf": [ + { + "description": "The act of interacting with another person or organization.", + "$ref": "schema:InteractAction" + } + ] +} diff --git a/registry/schema-org/Mass.schema.json b/registry/schema-org/Mass.schema.json new file mode 100644 index 0000000..67ab78b --- /dev/null +++ b/registry/schema-org/Mass.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Mass", + "title": "Mass", + "description": "Properties that take Mass as values are of the form ' '. E.g., '7 kg'.", + "type": "object", + "allOf": [ + { + "description": "Quantities such as distance, time, mass, weight, etc. Particular instances of say Mass are entities like '3 kg' or '4 milligrams'.", + "$ref": "schema:Quantity" + } + ] +} diff --git a/registry/schema-org/MathSolver.schema.json b/registry/schema-org/MathSolver.schema.json new file mode 100644 index 0000000..78ef220 --- /dev/null +++ b/registry/schema-org/MathSolver.schema.json @@ -0,0 +1,32 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:MathSolver", + "title": "MathSolver", + "description": "A math solver which is capable of solving a subset of mathematical problems.", + "type": "object", + "allOf": [ + { + "description": "The most generic kind of creative work, including books, movies, photographs, software programs, etc.", + "$ref": "schema:CreativeWork" + } + ], + "properties": { + "mathExpression": { + "description": "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.", + "oneOf": [ + { + "anyOf": [{ "type": "string" }, { "$ref": "schema:SolveMathAction" }] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:SolveMathAction" } + ] + } + } + ] + } + } +} diff --git a/registry/schema-org/MaximumDoseSchedule.schema.json b/registry/schema-org/MaximumDoseSchedule.schema.json new file mode 100644 index 0000000..893d57e --- /dev/null +++ b/registry/schema-org/MaximumDoseSchedule.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:MaximumDoseSchedule", + "title": "MaximumDoseSchedule", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "A specific dosing schedule for a drug or supplement.", + "$ref": "schema:DoseSchedule" + } + ] +} diff --git a/registry/schema-org/MeasurementMethodEnum.schema.json b/registry/schema-org/MeasurementMethodEnum.schema.json new file mode 100644 index 0000000..c5b8cf2 --- /dev/null +++ b/registry/schema-org/MeasurementMethodEnum.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:MeasurementMethodEnum", + "title": "MeasurementMethodEnum", + "description": "Enumeration(s) for use with [[measurementMethod]].", + "type": "string", + "oneOf": [ + { + "description": "An example [[MeasurementMethodEnum]] (to remove when real enums are added).", + "const": "ExampleMeasurementMethodEnum" + } + ] +} diff --git a/registry/schema-org/MeasurementTypeEnumeration.schema.json b/registry/schema-org/MeasurementTypeEnumeration.schema.json new file mode 100644 index 0000000..8742a07 --- /dev/null +++ b/registry/schema-org/MeasurementTypeEnumeration.schema.json @@ -0,0 +1,7 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:MeasurementTypeEnumeration", + "title": "MeasurementTypeEnumeration", + "description": "Enumeration of common measurement types (or dimensions), for example \"chest\" for a person, \"inseam\" for pants, \"gauge\" for screws, or \"wheel\" for bicycles.", + "type": "object" +} diff --git a/registry/schema-org/MediaEnumeration.schema.json b/registry/schema-org/MediaEnumeration.schema.json new file mode 100644 index 0000000..14bcd46 --- /dev/null +++ b/registry/schema-org/MediaEnumeration.schema.json @@ -0,0 +1,7 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:MediaEnumeration", + "title": "MediaEnumeration", + "description": "MediaEnumeration enumerations are lists of codes, labels etc. useful for describing media objects. They may be reflections of externally developed lists, or created at schema.org, or a combination.", + "type": "object" +} diff --git a/registry/schema-org/MediaGallery.schema.json b/registry/schema-org/MediaGallery.schema.json new file mode 100644 index 0000000..ef09edc --- /dev/null +++ b/registry/schema-org/MediaGallery.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:MediaGallery", + "title": "MediaGallery", + "description": "Web page type: Media gallery page. A mixed-media page that can contain media such as images, videos, and other multimedia.", + "type": "object", + "allOf": [ + { + "description": "Web page type: Collection page.", + "$ref": "schema:CollectionPage" + } + ] +} diff --git a/registry/schema-org/MediaManipulationRatingEnumeration.schema.json b/registry/schema-org/MediaManipulationRatingEnumeration.schema.json new file mode 100644 index 0000000..471f1ee --- /dev/null +++ b/registry/schema-org/MediaManipulationRatingEnumeration.schema.json @@ -0,0 +1,33 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:MediaManipulationRatingEnumeration", + "title": "MediaManipulationRatingEnumeration", + "description": "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.", + "type": "string", + "oneOf": [ + { + "description": "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.)\n", + "const": "DecontextualizedContent" + }, + { + "description": "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.\n", + "const": "EditedOrCroppedContent" + }, + { + "description": "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.\n", + "const": "OriginalMediaContent" + }, + { + "description": "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.)\n", + "const": "SatireOrParodyContent" + }, + { + "description": "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.\n", + "const": "StagedContent" + }, + { + "description": "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.\n", + "const": "TransformedContent" + } + ] +} diff --git a/registry/schema-org/MediaObject.schema.json b/registry/schema-org/MediaObject.schema.json new file mode 100644 index 0000000..f636516 --- /dev/null +++ b/registry/schema-org/MediaObject.schema.json @@ -0,0 +1,128 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:MediaObject", + "title": "MediaObject", + "description": "A media object, such as an image, video, audio, or text 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).", + "type": "object", + "allOf": [ + { + "description": "The most generic kind of creative work, including books, movies, photographs, software programs, etc.", + "$ref": "schema:CreativeWork" + } + ], + "properties": { + "associatedArticle": { + "description": "A NewsArticle associated with the Media Object.", + "oneOf": [ + { "$ref": "schema:NewsArticle" }, + { "type": "array", "items": { "$ref": "schema:NewsArticle" } } + ] + }, + "bitrate": { + "description": "The bitrate of the media object.", + "type": "string" + }, + "contentSize": { + "description": "File size in (mega/kilo)bytes.", + "type": "string" + }, + "contentUrl": { + "description": "Actual bytes of the media object, for example the image file or video file.", + "type": "string", + "format": "uri" + }, + "duration": { + "description": "The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 duration format](http://en.wikipedia.org/wiki/ISO_8601).", + "anyOf": [ + { "type": "string", "$comment": "https://schema.org/Duration" }, + { "$ref": "schema:QuantitativeValue" } + ] + }, + "embedUrl": { + "description": "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.", + "type": "string", + "format": "uri" + }, + "encodesCreativeWork": { + "description": "The CreativeWork encoded by this media object.", + "$ref": "schema:CreativeWork" + }, + "encodingFormat": { + "description": "Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc.\n\nIn cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information.\n\nUnregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.", + "anyOf": [{ "type": "string", "format": "uri" }, { "type": "string" }] + }, + "endTime": { + "description": "The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it's the time offset of the end of a clip within a larger file.\\n\\nNote that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.", + "anyOf": [ + { "type": "string", "format": "date-time" }, + { "type": "string", "format": "time" } + ] + }, + "height": { + "description": "The height of the item.", + "anyOf": [ + { "type": "string", "$comment": "https://schema.org/Distance" }, + { "$ref": "schema:QuantitativeValue" } + ] + }, + "ineligibleRegion": { + "description": "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.\\n\\nSee also [[eligibleRegion]].\n ", + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:GeoShape" }, + { "$ref": "schema:Place" } + ] + }, + "interpretedAsClaim": { + "description": "Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].", + "oneOf": [ + { "$ref": "schema:Claim" }, + { "type": "array", "items": { "$ref": "schema:Claim" } } + ] + }, + "playerType": { + "description": "Player type required—for example, Flash or Silverlight.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "productionCompany": { + "description": "The production company or studio responsible for the item, e.g. series, video game, episode etc.", + "$ref": "schema:Organization" + }, + "regionsAllowed": { + "description": "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).", + "$ref": "schema:Place" + }, + "requiresSubscription": { + "description": "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').", + "anyOf": [{ "type": "boolean" }, { "$ref": "schema:MediaSubscription" }] + }, + "sha256": { + "description": "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'.", + "type": "string" + }, + "startTime": { + "description": "The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it's the time offset of the start of a clip within a larger file.\\n\\nNote that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.", + "anyOf": [ + { "type": "string", "format": "date-time" }, + { "type": "string", "format": "time" } + ] + }, + "uploadDate": { + "description": "Date (including time if available) when this media object was uploaded to this site.", + "anyOf": [ + { "type": "string", "format": "date" }, + { "type": "string", "format": "date-time" } + ] + }, + "width": { + "description": "The width of the item.", + "anyOf": [ + { "type": "string", "$comment": "https://schema.org/Distance" }, + { "$ref": "schema:QuantitativeValue" } + ] + } + } +} diff --git a/registry/schema-org/MediaReview.schema.json b/registry/schema-org/MediaReview.schema.json new file mode 100644 index 0000000..02e9631 --- /dev/null +++ b/registry/schema-org/MediaReview.schema.json @@ -0,0 +1,54 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:MediaReview", + "title": "MediaReview", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "A review of an item - for example, of a restaurant, movie, or store.", + "$ref": "schema:Review" + } + ], + "properties": { + "mediaAuthenticityCategory": { + "description": "Indicates a MediaManipulationRatingEnumeration classification of a media object (in the context of how it was published or shared).", + "oneOf": [ + { "$ref": "schema:MediaManipulationRatingEnumeration" }, + { + "type": "array", + "items": { "$ref": "schema:MediaManipulationRatingEnumeration" } + } + ] + }, + "originalMediaContextDescription": { + "description": "Describes, in a [[MediaReview]] when dealing with [[DecontextualizedContent]], background information that can contribute to better interpretation of the [[MediaObject]].", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "originalMediaLink": { + "description": "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.", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:MediaObject" }, + { "$ref": "schema:WebPage" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:MediaObject" }, + { "$ref": "schema:WebPage" } + ] + } + } + ] + } + } +} diff --git a/registry/schema-org/MediaReviewItem.schema.json b/registry/schema-org/MediaReviewItem.schema.json new file mode 100644 index 0000000..9bfe4ee --- /dev/null +++ b/registry/schema-org/MediaReviewItem.schema.json @@ -0,0 +1,22 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:MediaReviewItem", + "title": "MediaReviewItem", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "The most generic kind of creative work, including books, movies, photographs, software programs, etc.", + "$ref": "schema:CreativeWork" + } + ], + "properties": { + "mediaItemAppearance": { + "description": "In the context of a [[MediaReview]], indicates specific media item(s) that are grouped using a [[MediaReviewItem]].", + "oneOf": [ + { "$ref": "schema:MediaObject" }, + { "type": "array", "items": { "$ref": "schema:MediaObject" } } + ] + } + } +} diff --git a/registry/schema-org/MediaSubscription.schema.json b/registry/schema-org/MediaSubscription.schema.json new file mode 100644 index 0000000..a5118c7 --- /dev/null +++ b/registry/schema-org/MediaSubscription.schema.json @@ -0,0 +1,26 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:MediaSubscription", + "title": "MediaSubscription", + "description": "A subscription which allows a user to access media including audio, video, books, etc.", + "type": "object", + "allOf": [ + { + "description": "A utility class that serves as the umbrella for a number of 'intangible' things such as quantities, structured values, etc.", + "$ref": "schema:Intangible" + } + ], + "properties": { + "authenticator": { + "description": "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.", + "$ref": "schema:Organization" + }, + "expectsAcceptanceOf": { + "description": "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.", + "oneOf": [ + { "$ref": "schema:Offer" }, + { "type": "array", "items": { "$ref": "schema:Offer" } } + ] + } + } +} diff --git a/registry/schema-org/MedicalAudience.schema.json b/registry/schema-org/MedicalAudience.schema.json new file mode 100644 index 0000000..ba217f1 --- /dev/null +++ b/registry/schema-org/MedicalAudience.schema.json @@ -0,0 +1,17 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:MedicalAudience", + "title": "MedicalAudience", + "description": "Target audiences for medical web pages.", + "type": "object", + "allOf": [ + { + "description": "Intended audience for an item, i.e. the group for whom the item was created.", + "$ref": "schema:Audience" + }, + { + "description": "A set of characteristics belonging to people, e.g. who compose an item's target audience.", + "$ref": "schema:PeopleAudience" + } + ] +} diff --git a/registry/schema-org/MedicalAudienceType.schema.json b/registry/schema-org/MedicalAudienceType.schema.json new file mode 100644 index 0000000..0f7129e --- /dev/null +++ b/registry/schema-org/MedicalAudienceType.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:MedicalAudienceType", + "title": "MedicalAudienceType", + "description": "Target audiences types for medical web pages. Enumerated type.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:MedicalEnumeration" + } + ] +} diff --git a/registry/schema-org/MedicalBusiness.schema.json b/registry/schema-org/MedicalBusiness.schema.json new file mode 100644 index 0000000..1575e53 --- /dev/null +++ b/registry/schema-org/MedicalBusiness.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:MedicalBusiness", + "title": "MedicalBusiness", + "description": "A particular physical or virtual business of an organization for medical purposes. Examples of MedicalBusiness include different businesses run by health professionals.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:LocalBusiness" + } + ] +} diff --git a/registry/schema-org/MedicalCause.schema.json b/registry/schema-org/MedicalCause.schema.json new file mode 100644 index 0000000..cdbf743 --- /dev/null +++ b/registry/schema-org/MedicalCause.schema.json @@ -0,0 +1,19 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:MedicalCause", + "title": "MedicalCause", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "The most generic type of entity related to health and the practice of medicine.", + "$ref": "schema:MedicalEntity" + } + ], + "properties": { + "causeOf": { + "description": "The condition, complication, symptom, sign, etc. caused.", + "$ref": "schema:MedicalEntity" + } + } +} diff --git a/registry/schema-org/MedicalClinic.schema.json b/registry/schema-org/MedicalClinic.schema.json new file mode 100644 index 0000000..e36179f --- /dev/null +++ b/registry/schema-org/MedicalClinic.schema.json @@ -0,0 +1,48 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:MedicalClinic", + "title": "MedicalClinic", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "A particular physical or virtual business of an organization for medical purposes. Examples of MedicalBusiness include different businesses run by health professionals.", + "$ref": "schema:MedicalBusiness" + }, + { + "description": "A medical organization (physical or not), such as hospital, institution or clinic.", + "$ref": "schema:MedicalOrganization" + } + ], + "properties": { + "availableService": { + "description": "A medical service available from this provider.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:MedicalProcedure" }, + { "$ref": "schema:MedicalTest" }, + { "$ref": "schema:MedicalTherapy" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:MedicalProcedure" }, + { "$ref": "schema:MedicalTest" }, + { "$ref": "schema:MedicalTherapy" } + ] + } + } + ] + }, + "medicalSpecialty": { + "description": "A medical specialty of the provider.", + "oneOf": [ + { "$ref": "schema:MedicalSpecialty" }, + { "type": "array", "items": { "$ref": "schema:MedicalSpecialty" } } + ] + } + } +} diff --git a/registry/schema-org/MedicalCode.schema.json b/registry/schema-org/MedicalCode.schema.json new file mode 100644 index 0000000..4471c16 --- /dev/null +++ b/registry/schema-org/MedicalCode.schema.json @@ -0,0 +1,24 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:MedicalCode", + "title": "MedicalCode", + "description": "A code for a medical entity.", + "type": "object", + "allOf": [ + { "description": "A Category Code.", "$ref": "schema:CategoryCode" }, + { + "description": "A utility class that serves as the umbrella for a number of 'intangible' things in the medical space.", + "$ref": "schema:MedicalIntangible" + } + ], + "properties": { + "codeValue": { + "description": "A short textual code that uniquely identifies the value.", + "type": "string" + }, + "codingSystem": { + "description": "The coding system, e.g. 'ICD-10'.", + "type": "string" + } + } +} diff --git a/registry/schema-org/MedicalCondition.schema.json b/registry/schema-org/MedicalCondition.schema.json new file mode 100644 index 0000000..aa860e2 --- /dev/null +++ b/registry/schema-org/MedicalCondition.schema.json @@ -0,0 +1,117 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:MedicalCondition", + "title": "MedicalCondition", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "The most generic type of entity related to health and the practice of medicine.", + "$ref": "schema:MedicalEntity" + } + ], + "properties": { + "associatedAnatomy": { + "description": "The anatomy of the underlying organ system or structures associated with this entity.", + "anyOf": [ + { "$ref": "schema:AnatomicalStructure" }, + { "$ref": "schema:AnatomicalSystem" }, + { "$ref": "schema:SuperficialAnatomy" } + ] + }, + "differentialDiagnosis": { + "description": "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.", + "oneOf": [ + { "$ref": "schema:DDxElement" }, + { "type": "array", "items": { "$ref": "schema:DDxElement" } } + ] + }, + "drug": { + "description": "Specifying a drug or medicine used in a medication procedure.", + "oneOf": [ + { "$ref": "schema:Drug" }, + { "type": "array", "items": { "$ref": "schema:Drug" } } + ] + }, + "epidemiology": { + "description": "The characteristics of associated patients, such as age, gender, race etc.", + "type": "string" + }, + "expectedPrognosis": { + "description": "The likely outcome in either the short term or long term of the medical condition.", + "type": "string" + }, + "naturalProgression": { + "description": "The expected progression of the condition if it is not treated and allowed to progress naturally.", + "type": "string" + }, + "pathophysiology": { + "description": "Changes in the normal mechanical, physical, and biochemical functions that are associated with this activity or condition.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "possibleComplication": { + "description": "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.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "possibleTreatment": { + "description": "A possible treatment to address this condition, sign or symptom.", + "oneOf": [ + { "$ref": "schema:MedicalTherapy" }, + { "type": "array", "items": { "$ref": "schema:MedicalTherapy" } } + ] + }, + "primaryPrevention": { + "description": "A preventative therapy used to prevent an initial occurrence of the medical condition, such as vaccination.", + "oneOf": [ + { "$ref": "schema:MedicalTherapy" }, + { "type": "array", "items": { "$ref": "schema:MedicalTherapy" } } + ] + }, + "riskFactor": { + "description": "A modifiable or non-modifiable factor that increases the risk of a patient contracting this condition, e.g. age, coexisting condition.", + "oneOf": [ + { "$ref": "schema:MedicalRiskFactor" }, + { "type": "array", "items": { "$ref": "schema:MedicalRiskFactor" } } + ] + }, + "secondaryPrevention": { + "description": "A preventative therapy used to prevent reoccurrence of the medical condition after an initial episode of the condition.", + "oneOf": [ + { "$ref": "schema:MedicalTherapy" }, + { "type": "array", "items": { "$ref": "schema:MedicalTherapy" } } + ] + }, + "signOrSymptom": { + "description": "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.", + "oneOf": [ + { "$ref": "schema:MedicalSignOrSymptom" }, + { "type": "array", "items": { "$ref": "schema:MedicalSignOrSymptom" } } + ] + }, + "stage": { + "description": "The stage of the condition, if applicable.", + "$ref": "schema:MedicalConditionStage" + }, + "status": { + "description": "The status of the study (enumerated).", + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:EventStatusType" }, + { "$ref": "schema:MedicalStudyStatus" } + ] + }, + "typicalTest": { + "description": "A medical test typically performed given this condition.", + "oneOf": [ + { "$ref": "schema:MedicalTest" }, + { "type": "array", "items": { "$ref": "schema:MedicalTest" } } + ] + } + } +} diff --git a/registry/schema-org/MedicalConditionStage.schema.json b/registry/schema-org/MedicalConditionStage.schema.json new file mode 100644 index 0000000..14edd0e --- /dev/null +++ b/registry/schema-org/MedicalConditionStage.schema.json @@ -0,0 +1,23 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:MedicalConditionStage", + "title": "MedicalConditionStage", + "description": "A stage of a medical condition, such as 'Stage IIIa'.", + "type": "object", + "allOf": [ + { + "description": "A utility class that serves as the umbrella for a number of 'intangible' things in the medical space.", + "$ref": "schema:MedicalIntangible" + } + ], + "properties": { + "stageAsNumber": { + "description": "The stage represented as a number, e.g. 3.", + "type": "number" + }, + "subStageSuffix": { + "description": "The substage, e.g. 'a' for Stage IIIa.", + "type": "string" + } + } +} diff --git a/registry/schema-org/MedicalContraindication.schema.json b/registry/schema-org/MedicalContraindication.schema.json new file mode 100644 index 0000000..52d0870 --- /dev/null +++ b/registry/schema-org/MedicalContraindication.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:MedicalContraindication", + "title": "MedicalContraindication", + "description": "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).", + "type": "object", + "allOf": [ + { + "description": "The most generic type of entity related to health and the practice of medicine.", + "$ref": "schema:MedicalEntity" + } + ] +} diff --git a/registry/schema-org/MedicalDevice.schema.json b/registry/schema-org/MedicalDevice.schema.json new file mode 100644 index 0000000..01bdcd8 --- /dev/null +++ b/registry/schema-org/MedicalDevice.schema.json @@ -0,0 +1,70 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:MedicalDevice", + "title": "MedicalDevice", + "description": "Any object used in a medical capacity, such as to diagnose or treat a patient.", + "type": "object", + "allOf": [ + { + "description": "The most generic type of entity related to health and the practice of medicine.", + "$ref": "schema:MedicalEntity" + } + ], + "properties": { + "adverseOutcome": { + "description": "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.", + "oneOf": [ + { "$ref": "schema:MedicalEntity" }, + { "type": "array", "items": { "$ref": "schema:MedicalEntity" } } + ] + }, + "contraindication": { + "description": "A contraindication for this therapy.", + "oneOf": [ + { + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:MedicalContraindication" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:MedicalContraindication" } + ] + } + } + ] + }, + "postOp": { + "description": "A description of the postoperative procedures, care, and/or followups for this device.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "preOp": { + "description": "A description of the workup, testing, and other preparations required before implanting this device.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "procedure": { + "description": "A description of the procedure involved in setting up, using, and/or installing the device.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "seriousAdverseOutcome": { + "description": "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.", + "oneOf": [ + { "$ref": "schema:MedicalEntity" }, + { "type": "array", "items": { "$ref": "schema:MedicalEntity" } } + ] + } + } +} diff --git a/registry/schema-org/MedicalDevicePurpose.schema.json b/registry/schema-org/MedicalDevicePurpose.schema.json new file mode 100644 index 0000000..9893d8e --- /dev/null +++ b/registry/schema-org/MedicalDevicePurpose.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:MedicalDevicePurpose", + "title": "MedicalDevicePurpose", + "description": "Categories of medical devices, organized by the purpose or intended use of the device.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:MedicalEnumeration" + } + ] +} diff --git a/registry/schema-org/MedicalEntity.schema.json b/registry/schema-org/MedicalEntity.schema.json new file mode 100644 index 0000000..aef2c67 --- /dev/null +++ b/registry/schema-org/MedicalEntity.schema.json @@ -0,0 +1,66 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:MedicalEntity", + "title": "MedicalEntity", + "description": "The most generic type of entity related to health and the practice of medicine.", + "type": "object", + "allOf": [ + { "description": "The most generic type of item.", "$ref": "schema:Thing" } + ], + "properties": { + "code": { + "description": "A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.", + "oneOf": [ + { "$ref": "schema:MedicalCode" }, + { "type": "array", "items": { "$ref": "schema:MedicalCode" } } + ] + }, + "funding": { + "description": "A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].", + "oneOf": [ + { "$ref": "schema:Grant" }, + { "type": "array", "items": { "$ref": "schema:Grant" } } + ] + }, + "guideline": { + "description": "A medical guideline related to this entity.", + "oneOf": [ + { "$ref": "schema:MedicalGuideline" }, + { "type": "array", "items": { "$ref": "schema:MedicalGuideline" } } + ] + }, + "legalStatus": { + "description": "The drug or supplement's legal status, including any controlled substance schedules that apply.", + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:DrugLegalStatus" }, + { "$ref": "schema:MedicalEnumeration" } + ] + }, + "medicineSystem": { + "description": "The system of medicine that includes this MedicalEntity, for example 'evidence-based', 'homeopathic', 'chiropractic', etc.", + "$ref": "schema:MedicineSystem" + }, + "recognizingAuthority": { + "description": "If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.", + "oneOf": [ + { "$ref": "schema:Organization" }, + { "type": "array", "items": { "$ref": "schema:Organization" } } + ] + }, + "relevantSpecialty": { + "description": "If applicable, a medical specialty in which this entity is relevant.", + "oneOf": [ + { "$ref": "schema:MedicalSpecialty" }, + { "type": "array", "items": { "$ref": "schema:MedicalSpecialty" } } + ] + }, + "study": { + "description": "A medical study or trial related to this entity.", + "oneOf": [ + { "$ref": "schema:MedicalStudy" }, + { "type": "array", "items": { "$ref": "schema:MedicalStudy" } } + ] + } + } +} diff --git a/registry/schema-org/MedicalEnumeration.schema.json b/registry/schema-org/MedicalEnumeration.schema.json new file mode 100644 index 0000000..affdb3f --- /dev/null +++ b/registry/schema-org/MedicalEnumeration.schema.json @@ -0,0 +1,7 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:MedicalEnumeration", + "title": "MedicalEnumeration", + "description": "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.", + "type": "object" +} diff --git a/registry/schema-org/MedicalEvidenceLevel.schema.json b/registry/schema-org/MedicalEvidenceLevel.schema.json new file mode 100644 index 0000000..7741b7e --- /dev/null +++ b/registry/schema-org/MedicalEvidenceLevel.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:MedicalEvidenceLevel", + "title": "MedicalEvidenceLevel", + "description": "Level of evidence for a medical guideline. Enumerated type.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:MedicalEnumeration" + } + ] +} diff --git a/registry/schema-org/MedicalGuideline.schema.json b/registry/schema-org/MedicalGuideline.schema.json new file mode 100644 index 0000000..db357d0 --- /dev/null +++ b/registry/schema-org/MedicalGuideline.schema.json @@ -0,0 +1,32 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:MedicalGuideline", + "title": "MedicalGuideline", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "The most generic type of entity related to health and the practice of medicine.", + "$ref": "schema:MedicalEntity" + } + ], + "properties": { + "evidenceLevel": { + "description": "Strength of evidence of the data used to formulate the guideline (enumerated).", + "$ref": "schema:MedicalEvidenceLevel" + }, + "evidenceOrigin": { + "description": "Source of the data used to formulate the guidance, e.g. RCT, consensus opinion, etc.", + "type": "string" + }, + "guidelineDate": { + "description": "Date on which this guideline's recommendation was made.", + "type": "string", + "format": "date" + }, + "guidelineSubject": { + "description": "The medical conditions, treatments, etc. that are the subject of the guideline.", + "$ref": "schema:MedicalEntity" + } + } +} diff --git a/registry/schema-org/MedicalGuidelineContraindication.schema.json b/registry/schema-org/MedicalGuidelineContraindication.schema.json new file mode 100644 index 0000000..93533ea --- /dev/null +++ b/registry/schema-org/MedicalGuidelineContraindication.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:MedicalGuidelineContraindication", + "title": "MedicalGuidelineContraindication", + "description": "A guideline contraindication that designates a process as harmful and where quality of the data supporting the contraindication is sound.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:MedicalGuideline" + } + ] +} diff --git a/registry/schema-org/MedicalGuidelineRecommendation.schema.json b/registry/schema-org/MedicalGuidelineRecommendation.schema.json new file mode 100644 index 0000000..4fc64d9 --- /dev/null +++ b/registry/schema-org/MedicalGuidelineRecommendation.schema.json @@ -0,0 +1,22 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:MedicalGuidelineRecommendation", + "title": "MedicalGuidelineRecommendation", + "description": "A guideline recommendation that is regarded as efficacious and where quality of the data supporting the recommendation is sound.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:MedicalGuideline" + } + ], + "properties": { + "recommendationStrength": { + "description": "Strength of the guideline's recommendation (e.g. 'class I').", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + } + } +} diff --git a/registry/schema-org/MedicalImagingTechnique.schema.json b/registry/schema-org/MedicalImagingTechnique.schema.json new file mode 100644 index 0000000..3eaa86f --- /dev/null +++ b/registry/schema-org/MedicalImagingTechnique.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:MedicalImagingTechnique", + "title": "MedicalImagingTechnique", + "description": "Any medical imaging modality typically used for diagnostic purposes. Enumerated type.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:MedicalEnumeration" + } + ] +} diff --git a/registry/schema-org/MedicalIndication.schema.json b/registry/schema-org/MedicalIndication.schema.json new file mode 100644 index 0000000..4bf2264 --- /dev/null +++ b/registry/schema-org/MedicalIndication.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:MedicalIndication", + "title": "MedicalIndication", + "description": "A condition or factor that indicates use of a medical therapy, including signs, symptoms, risk factors, anatomical states, etc.", + "type": "object", + "allOf": [ + { + "description": "The most generic type of entity related to health and the practice of medicine.", + "$ref": "schema:MedicalEntity" + } + ] +} diff --git a/registry/schema-org/MedicalIntangible.schema.json b/registry/schema-org/MedicalIntangible.schema.json new file mode 100644 index 0000000..b76acd1 --- /dev/null +++ b/registry/schema-org/MedicalIntangible.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:MedicalIntangible", + "title": "MedicalIntangible", + "description": "A utility class that serves as the umbrella for a number of 'intangible' things in the medical space.", + "type": "object", + "allOf": [ + { + "description": "The most generic type of entity related to health and the practice of medicine.", + "$ref": "schema:MedicalEntity" + } + ] +} diff --git a/registry/schema-org/MedicalObservationalStudy.schema.json b/registry/schema-org/MedicalObservationalStudy.schema.json new file mode 100644 index 0000000..461e9a4 --- /dev/null +++ b/registry/schema-org/MedicalObservationalStudy.schema.json @@ -0,0 +1,19 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:MedicalObservationalStudy", + "title": "MedicalObservationalStudy", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:MedicalStudy" + } + ], + "properties": { + "studyDesign": { + "description": "Specifics about the observational study design (enumerated).", + "$ref": "schema:MedicalObservationalStudyDesign" + } + } +} diff --git a/registry/schema-org/MedicalObservationalStudyDesign.schema.json b/registry/schema-org/MedicalObservationalStudyDesign.schema.json new file mode 100644 index 0000000..a9f8b6e --- /dev/null +++ b/registry/schema-org/MedicalObservationalStudyDesign.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:MedicalObservationalStudyDesign", + "title": "MedicalObservationalStudyDesign", + "description": "Design models for observational medical studies. Enumerated type.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:MedicalEnumeration" + } + ] +} diff --git a/registry/schema-org/MedicalOrganization.schema.json b/registry/schema-org/MedicalOrganization.schema.json new file mode 100644 index 0000000..67ad4c5 --- /dev/null +++ b/registry/schema-org/MedicalOrganization.schema.json @@ -0,0 +1,33 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:MedicalOrganization", + "title": "MedicalOrganization", + "description": "A medical organization (physical or not), such as hospital, institution or clinic.", + "type": "object", + "allOf": [ + { + "description": "An organization such as a school, NGO, corporation, club, etc.", + "$ref": "schema:Organization" + } + ], + "properties": { + "healthPlanNetworkId": { + "description": "Name or unique ID of network. (Networks are often reused across different insurance plans.)", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "isAcceptingNewPatients": { + "description": "Whether the provider is accepting new patients.", + "type": "boolean" + }, + "medicalSpecialty": { + "description": "A medical specialty of the provider.", + "oneOf": [ + { "$ref": "schema:MedicalSpecialty" }, + { "type": "array", "items": { "$ref": "schema:MedicalSpecialty" } } + ] + } + } +} diff --git a/registry/schema-org/MedicalProcedure.schema.json b/registry/schema-org/MedicalProcedure.schema.json new file mode 100644 index 0000000..6707991 --- /dev/null +++ b/registry/schema-org/MedicalProcedure.schema.json @@ -0,0 +1,43 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:MedicalProcedure", + "title": "MedicalProcedure", + "description": "A process of care used in either a diagnostic, therapeutic, preventive or palliative capacity that relies on invasive (surgical), non-invasive, or other techniques.", + "type": "object", + "allOf": [ + { + "description": "The most generic type of entity related to health and the practice of medicine.", + "$ref": "schema:MedicalEntity" + } + ], + "properties": { + "bodyLocation": { + "description": "Location in the body of the anatomical structure.", + "type": "string" + }, + "followup": { + "description": "Typical or recommended followup care after the procedure is performed.", + "type": "string" + }, + "howPerformed": { + "description": "How the procedure is performed.", + "type": "string" + }, + "preparation": { + "description": "Typical preparation that a patient must undergo before having the procedure performed.", + "anyOf": [{ "type": "string" }, { "$ref": "schema:MedicalEntity" }] + }, + "procedureType": { + "description": "The type of procedure, for example Surgical, Noninvasive, or Percutaneous.", + "$ref": "schema:MedicalProcedureType" + }, + "status": { + "description": "The status of the study (enumerated).", + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:EventStatusType" }, + { "$ref": "schema:MedicalStudyStatus" } + ] + } + } +} diff --git a/registry/schema-org/MedicalProcedureType.schema.json b/registry/schema-org/MedicalProcedureType.schema.json new file mode 100644 index 0000000..fc1e040 --- /dev/null +++ b/registry/schema-org/MedicalProcedureType.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:MedicalProcedureType", + "title": "MedicalProcedureType", + "description": "An enumeration that describes different types of medical procedures.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:MedicalEnumeration" + } + ] +} diff --git a/registry/schema-org/MedicalRiskCalculator.schema.json b/registry/schema-org/MedicalRiskCalculator.schema.json new file mode 100644 index 0000000..211f09e --- /dev/null +++ b/registry/schema-org/MedicalRiskCalculator.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:MedicalRiskCalculator", + "title": "MedicalRiskCalculator", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "Any rule set or interactive tool for estimating the risk of developing a complication or condition.", + "$ref": "schema:MedicalRiskEstimator" + } + ] +} diff --git a/registry/schema-org/MedicalRiskEstimator.schema.json b/registry/schema-org/MedicalRiskEstimator.schema.json new file mode 100644 index 0000000..c7a4dce --- /dev/null +++ b/registry/schema-org/MedicalRiskEstimator.schema.json @@ -0,0 +1,26 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:MedicalRiskEstimator", + "title": "MedicalRiskEstimator", + "description": "Any rule set or interactive tool for estimating the risk of developing a complication or condition.", + "type": "object", + "allOf": [ + { + "description": "The most generic type of entity related to health and the practice of medicine.", + "$ref": "schema:MedicalEntity" + } + ], + "properties": { + "estimatesRiskOf": { + "description": "The condition, complication, or symptom whose risk is being estimated.", + "$ref": "schema:MedicalEntity" + }, + "includedRiskFactor": { + "description": "A modifiable or non-modifiable risk factor included in the calculation, e.g. age, coexisting condition.", + "oneOf": [ + { "$ref": "schema:MedicalRiskFactor" }, + { "type": "array", "items": { "$ref": "schema:MedicalRiskFactor" } } + ] + } + } +} diff --git a/registry/schema-org/MedicalRiskFactor.schema.json b/registry/schema-org/MedicalRiskFactor.schema.json new file mode 100644 index 0000000..4022135 --- /dev/null +++ b/registry/schema-org/MedicalRiskFactor.schema.json @@ -0,0 +1,19 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:MedicalRiskFactor", + "title": "MedicalRiskFactor", + "description": "A risk factor is anything that increases a person's likelihood of developing or contracting a disease, medical condition, or complication.", + "type": "object", + "allOf": [ + { + "description": "The most generic type of entity related to health and the practice of medicine.", + "$ref": "schema:MedicalEntity" + } + ], + "properties": { + "increasesRiskOf": { + "description": "The condition, complication, etc. influenced by this factor.", + "$ref": "schema:MedicalEntity" + } + } +} diff --git a/registry/schema-org/MedicalRiskScore.schema.json b/registry/schema-org/MedicalRiskScore.schema.json new file mode 100644 index 0000000..f865dc1 --- /dev/null +++ b/registry/schema-org/MedicalRiskScore.schema.json @@ -0,0 +1,19 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:MedicalRiskScore", + "title": "MedicalRiskScore", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "Any rule set or interactive tool for estimating the risk of developing a complication or condition.", + "$ref": "schema:MedicalRiskEstimator" + } + ], + "properties": { + "algorithm": { + "description": "The algorithm or rules to follow to compute the score.", + "type": "string" + } + } +} diff --git a/registry/schema-org/MedicalScholarlyArticle.schema.json b/registry/schema-org/MedicalScholarlyArticle.schema.json new file mode 100644 index 0000000..6107365 --- /dev/null +++ b/registry/schema-org/MedicalScholarlyArticle.schema.json @@ -0,0 +1,16 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:MedicalScholarlyArticle", + "title": "MedicalScholarlyArticle", + "description": "A scholarly article in the medical domain.", + "type": "object", + "allOf": [ + { "description": "A scholarly article.", "$ref": "schema:ScholarlyArticle" } + ], + "properties": { + "publicationType": { + "description": "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).", + "type": "string" + } + } +} diff --git a/registry/schema-org/MedicalSign.schema.json b/registry/schema-org/MedicalSign.schema.json new file mode 100644 index 0000000..25eef4c --- /dev/null +++ b/registry/schema-org/MedicalSign.schema.json @@ -0,0 +1,29 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:MedicalSign", + "title": "MedicalSign", + "description": "Any physical manifestation of a person's medical condition discoverable by objective diagnostic tests or physical examination.", + "type": "object", + "allOf": [ + { + "description": "Any feature associated or not with a medical condition. In medicine a symptom is generally subjective while a sign is objective.", + "$ref": "schema:MedicalSignOrSymptom" + } + ], + "properties": { + "identifyingExam": { + "description": "A physical examination that can identify this sign.", + "oneOf": [ + { "$ref": "schema:PhysicalExam" }, + { "type": "array", "items": { "$ref": "schema:PhysicalExam" } } + ] + }, + "identifyingTest": { + "description": "A diagnostic test that can identify this sign.", + "oneOf": [ + { "$ref": "schema:MedicalTest" }, + { "type": "array", "items": { "$ref": "schema:MedicalTest" } } + ] + } + } +} diff --git a/registry/schema-org/MedicalSignOrSymptom.schema.json b/registry/schema-org/MedicalSignOrSymptom.schema.json new file mode 100644 index 0000000..5df40f1 --- /dev/null +++ b/registry/schema-org/MedicalSignOrSymptom.schema.json @@ -0,0 +1,22 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:MedicalSignOrSymptom", + "title": "MedicalSignOrSymptom", + "description": "Any feature associated or not with a medical condition. In medicine a symptom is generally subjective while a sign is objective.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:MedicalCondition" + } + ], + "properties": { + "possibleTreatment": { + "description": "A possible treatment to address this condition, sign or symptom.", + "oneOf": [ + { "$ref": "schema:MedicalTherapy" }, + { "type": "array", "items": { "$ref": "schema:MedicalTherapy" } } + ] + } + } +} diff --git a/registry/schema-org/MedicalSpecialty.schema.json b/registry/schema-org/MedicalSpecialty.schema.json new file mode 100644 index 0000000..e3740d6 --- /dev/null +++ b/registry/schema-org/MedicalSpecialty.schema.json @@ -0,0 +1,17 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:MedicalSpecialty", + "title": "MedicalSpecialty", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:MedicalEnumeration" + }, + { + "description": "Any branch of a field in which people typically develop specific expertise, usually after significant study, time, and effort.", + "$ref": "schema:Specialty" + } + ] +} diff --git a/registry/schema-org/MedicalStudy.schema.json b/registry/schema-org/MedicalStudy.schema.json new file mode 100644 index 0000000..9bbfeb7 --- /dev/null +++ b/registry/schema-org/MedicalStudy.schema.json @@ -0,0 +1,58 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:MedicalStudy", + "title": "MedicalStudy", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "The most generic type of entity related to health and the practice of medicine.", + "$ref": "schema:MedicalEntity" + } + ], + "properties": { + "healthCondition": { + "description": "Specifying the health condition(s) of a patient, medical study, or other target audience.", + "$ref": "schema:MedicalCondition" + }, + "sponsor": { + "description": "A person or organization that supports a thing through a pledge, promise, or financial contribution. E.g. a sponsor of a Medical Study or a corporate sponsor of an event.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + } + } + ] + }, + "status": { + "description": "The status of the study (enumerated).", + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:EventStatusType" }, + { "$ref": "schema:MedicalStudyStatus" } + ] + }, + "studyLocation": { + "description": "The location in which the study is taking/took place.", + "$ref": "schema:AdministrativeArea" + }, + "studySubject": { + "description": "A subject of the study, i.e. one of the medical conditions, therapies, devices, drugs, etc. investigated by the study.", + "oneOf": [ + { "$ref": "schema:MedicalEntity" }, + { "type": "array", "items": { "$ref": "schema:MedicalEntity" } } + ] + } + } +} diff --git a/registry/schema-org/MedicalStudyStatus.schema.json b/registry/schema-org/MedicalStudyStatus.schema.json new file mode 100644 index 0000000..851abbb --- /dev/null +++ b/registry/schema-org/MedicalStudyStatus.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:MedicalStudyStatus", + "title": "MedicalStudyStatus", + "description": "The status of a medical study. Enumerated type.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:MedicalEnumeration" + } + ] +} diff --git a/registry/schema-org/MedicalSymptom.schema.json b/registry/schema-org/MedicalSymptom.schema.json new file mode 100644 index 0000000..f56aad8 --- /dev/null +++ b/registry/schema-org/MedicalSymptom.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:MedicalSymptom", + "title": "MedicalSymptom", + "description": "Any complaint sensed and expressed by the patient (therefore defined as subjective) like stomachache, lower-back pain, or fatigue.", + "type": "object", + "allOf": [ + { + "description": "Any feature associated or not with a medical condition. In medicine a symptom is generally subjective while a sign is objective.", + "$ref": "schema:MedicalSignOrSymptom" + } + ] +} diff --git a/registry/schema-org/MedicalTest.schema.json b/registry/schema-org/MedicalTest.schema.json new file mode 100644 index 0000000..e295777 --- /dev/null +++ b/registry/schema-org/MedicalTest.schema.json @@ -0,0 +1,47 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:MedicalTest", + "title": "MedicalTest", + "description": "Any medical test, typically performed for diagnostic purposes.", + "type": "object", + "allOf": [ + { + "description": "The most generic type of entity related to health and the practice of medicine.", + "$ref": "schema:MedicalEntity" + } + ], + "properties": { + "affectedBy": { + "description": "Drugs that affect the test's results.", + "oneOf": [ + { "$ref": "schema:Drug" }, + { "type": "array", "items": { "$ref": "schema:Drug" } } + ] + }, + "normalRange": { + "description": "Range of acceptable values for a typical patient, when applicable.", + "anyOf": [{ "type": "string" }, { "$ref": "schema:MedicalEnumeration" }] + }, + "signDetected": { + "description": "A sign detected by the test.", + "oneOf": [ + { "$ref": "schema:MedicalSign" }, + { "type": "array", "items": { "$ref": "schema:MedicalSign" } } + ] + }, + "usedToDiagnose": { + "description": "A condition the test is used to diagnose.", + "oneOf": [ + { "$ref": "schema:MedicalCondition" }, + { "type": "array", "items": { "$ref": "schema:MedicalCondition" } } + ] + }, + "usesDevice": { + "description": "Device used to perform the test.", + "oneOf": [ + { "$ref": "schema:MedicalDevice" }, + { "type": "array", "items": { "$ref": "schema:MedicalDevice" } } + ] + } + } +} diff --git a/registry/schema-org/MedicalTestPanel.schema.json b/registry/schema-org/MedicalTestPanel.schema.json new file mode 100644 index 0000000..938c817 --- /dev/null +++ b/registry/schema-org/MedicalTestPanel.schema.json @@ -0,0 +1,22 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:MedicalTestPanel", + "title": "MedicalTestPanel", + "description": "Any collection of tests commonly ordered together.", + "type": "object", + "allOf": [ + { + "description": "Any medical test, typically performed for diagnostic purposes.", + "$ref": "schema:MedicalTest" + } + ], + "properties": { + "subTest": { + "description": "A component test of the panel.", + "oneOf": [ + { "$ref": "schema:MedicalTest" }, + { "type": "array", "items": { "$ref": "schema:MedicalTest" } } + ] + } + } +} diff --git a/registry/schema-org/MedicalTherapy.schema.json b/registry/schema-org/MedicalTherapy.schema.json new file mode 100644 index 0000000..b6128c7 --- /dev/null +++ b/registry/schema-org/MedicalTherapy.schema.json @@ -0,0 +1,49 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:MedicalTherapy", + "title": "MedicalTherapy", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "A medical procedure intended primarily for therapeutic purposes, aimed at improving a health condition.", + "$ref": "schema:TherapeuticProcedure" + } + ], + "properties": { + "contraindication": { + "description": "A contraindication for this therapy.", + "oneOf": [ + { + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:MedicalContraindication" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:MedicalContraindication" } + ] + } + } + ] + }, + "duplicateTherapy": { + "description": "A therapy that duplicates or overlaps this one.", + "oneOf": [ + { "$ref": "schema:MedicalTherapy" }, + { "type": "array", "items": { "$ref": "schema:MedicalTherapy" } } + ] + }, + "seriousAdverseOutcome": { + "description": "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.", + "oneOf": [ + { "$ref": "schema:MedicalEntity" }, + { "type": "array", "items": { "$ref": "schema:MedicalEntity" } } + ] + } + } +} diff --git a/registry/schema-org/MedicalTrial.schema.json b/registry/schema-org/MedicalTrial.schema.json new file mode 100644 index 0000000..cd29e89 --- /dev/null +++ b/registry/schema-org/MedicalTrial.schema.json @@ -0,0 +1,19 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:MedicalTrial", + "title": "MedicalTrial", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:MedicalStudy" + } + ], + "properties": { + "trialDesign": { + "description": "Specifics about the trial design (enumerated).", + "$ref": "schema:MedicalTrialDesign" + } + } +} diff --git a/registry/schema-org/MedicalTrialDesign.schema.json b/registry/schema-org/MedicalTrialDesign.schema.json new file mode 100644 index 0000000..24fd427 --- /dev/null +++ b/registry/schema-org/MedicalTrialDesign.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:MedicalTrialDesign", + "title": "MedicalTrialDesign", + "description": "Design models for medical trials. Enumerated type.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:MedicalEnumeration" + } + ] +} diff --git a/registry/schema-org/MedicalWebPage.schema.json b/registry/schema-org/MedicalWebPage.schema.json new file mode 100644 index 0000000..e1be1cd --- /dev/null +++ b/registry/schema-org/MedicalWebPage.schema.json @@ -0,0 +1,42 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:MedicalWebPage", + "title": "MedicalWebPage", + "description": "A web page that provides medical information.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:WebPage" + } + ], + "properties": { + "aspect": { + "description": "An aspect of medical practice that is considered on the page, such as 'diagnosis', 'treatment', 'causes', 'prognosis', 'etiology', 'epidemiology', etc.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "medicalAudience": { + "description": "Medical audience for page.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:MedicalAudience" }, + { "$ref": "schema:MedicalAudienceType" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:MedicalAudience" }, + { "$ref": "schema:MedicalAudienceType" } + ] + } + } + ] + } + } +} diff --git a/registry/schema-org/MedicineSystem.schema.json b/registry/schema-org/MedicineSystem.schema.json new file mode 100644 index 0000000..1fc06bc --- /dev/null +++ b/registry/schema-org/MedicineSystem.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:MedicineSystem", + "title": "MedicineSystem", + "description": "Systems of medical practice.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:MedicalEnumeration" + } + ] +} diff --git a/registry/schema-org/MeetingRoom.schema.json b/registry/schema-org/MeetingRoom.schema.json new file mode 100644 index 0000000..04c1442 --- /dev/null +++ b/registry/schema-org/MeetingRoom.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:MeetingRoom", + "title": "MeetingRoom", + "description": "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.\n", + "type": "object", + "allOf": [ + { + "description": "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.\n", + "$ref": "schema:Room" + } + ] +} diff --git a/registry/schema-org/MemberProgram.schema.json b/registry/schema-org/MemberProgram.schema.json new file mode 100644 index 0000000..ccc55ec --- /dev/null +++ b/registry/schema-org/MemberProgram.schema.json @@ -0,0 +1,23 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:MemberProgram", + "title": "MemberProgram", + "description": "A MemberProgram defines a loyalty (or membership) program that provides its members with certain benefits, for example better pricing, free shipping or returns, or the ability to earn loyalty points. Member programs may have multiple tiers, for example silver and gold members, each with different benefits.", + "type": "object", + "allOf": [ + { + "description": "A utility class that serves as the umbrella for a number of 'intangible' things such as quantities, structured values, etc.", + "$ref": "schema:Intangible" + } + ], + "properties": { + "hasTiers": { + "description": "The tiers of a member program.", + "$ref": "schema:MemberProgramTier" + }, + "hostingOrganization": { + "description": "The Organization (airline, travelers' club, retailer, etc.) the membership is made with or which offers the MemberProgram.", + "$ref": "schema:Organization" + } + } +} diff --git a/registry/schema-org/MemberProgramTier.schema.json b/registry/schema-org/MemberProgramTier.schema.json new file mode 100644 index 0000000..e9247e0 --- /dev/null +++ b/registry/schema-org/MemberProgramTier.schema.json @@ -0,0 +1,57 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:MemberProgramTier", + "title": "MemberProgramTier", + "description": "A MemberProgramTier specifies a tier under a loyalty (member) program, for example \"gold\".", + "type": "object", + "allOf": [ + { + "description": "A utility class that serves as the umbrella for a number of 'intangible' things such as quantities, structured values, etc.", + "$ref": "schema:Intangible" + } + ], + "properties": { + "hasTierBenefit": { + "description": "A member benefit for a particular tier of a loyalty program.", + "oneOf": [ + { "$ref": "schema:TierBenefitEnumeration" }, + { + "type": "array", + "items": { "$ref": "schema:TierBenefitEnumeration" } + } + ] + }, + "hasTierRequirement": { + "description": "A requirement for a user to join a membership tier, for example: a CreditCard if the tier requires sign up for a credit card, A UnitPriceSpecification if the user is required to pay a (periodic) fee, or a MonetaryAmount if the user needs to spend a minimum amount to join the tier. If a tier is free to join then this property does not need to be specified.", + "oneOf": [ + { + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:CreditCard" }, + { "$ref": "schema:MonetaryAmount" }, + { "$ref": "schema:UnitPriceSpecification" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:CreditCard" }, + { "$ref": "schema:MonetaryAmount" }, + { "$ref": "schema:UnitPriceSpecification" } + ] + } + } + ] + }, + "isTierOf": { + "description": "The member program this tier is a part of.", + "$ref": "schema:MemberProgram" + }, + "membershipPointsEarned": { + "description": "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.)", + "anyOf": [{ "type": "number" }, { "$ref": "schema:QuantitativeValue" }] + } + } +} diff --git a/registry/schema-org/MensClothingStore.schema.json b/registry/schema-org/MensClothingStore.schema.json new file mode 100644 index 0000000..6e083c7 --- /dev/null +++ b/registry/schema-org/MensClothingStore.schema.json @@ -0,0 +1,8 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:MensClothingStore", + "title": "MensClothingStore", + "description": "A men's clothing store.", + "type": "object", + "allOf": [{ "description": "A retail good store.", "$ref": "schema:Store" }] +} diff --git a/registry/schema-org/Menu.schema.json b/registry/schema-org/Menu.schema.json new file mode 100644 index 0000000..61a8ab3 --- /dev/null +++ b/registry/schema-org/Menu.schema.json @@ -0,0 +1,29 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Menu", + "title": "Menu", + "description": "A structured representation of food or drink items available from a FoodEstablishment.", + "type": "object", + "allOf": [ + { + "description": "The most generic kind of creative work, including books, movies, photographs, software programs, etc.", + "$ref": "schema:CreativeWork" + } + ], + "properties": { + "hasMenuItem": { + "description": "A food or drink item contained in a menu or menu section.", + "oneOf": [ + { "$ref": "schema:MenuItem" }, + { "type": "array", "items": { "$ref": "schema:MenuItem" } } + ] + }, + "hasMenuSection": { + "description": "A subgrouping of the menu (by dishes, course, serving time period, etc.).", + "oneOf": [ + { "$ref": "schema:MenuSection" }, + { "type": "array", "items": { "$ref": "schema:MenuSection" } } + ] + } + } +} diff --git a/registry/schema-org/MenuItem.schema.json b/registry/schema-org/MenuItem.schema.json new file mode 100644 index 0000000..35cb32a --- /dev/null +++ b/registry/schema-org/MenuItem.schema.json @@ -0,0 +1,58 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:MenuItem", + "title": "MenuItem", + "description": "A food or drink item listed in a menu or menu section.", + "type": "object", + "allOf": [ + { + "description": "A utility class that serves as the umbrella for a number of 'intangible' things such as quantities, structured values, etc.", + "$ref": "schema:Intangible" + } + ], + "properties": { + "menuAddOn": { + "description": "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.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:MenuItem" }, + { "$ref": "schema:MenuSection" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:MenuItem" }, + { "$ref": "schema:MenuSection" } + ] + } + } + ] + }, + "nutrition": { + "description": "Nutrition information about the recipe or menu item.", + "$ref": "schema:NutritionInformation" + }, + "offers": { + "description": "An offer to provide this item—for example, an offer to sell a product, rent the DVD of a movie, perform a service, or give away tickets to an event. Use [[businessFunction]] to indicate the kind of transaction offered, i.e. sell, lease, etc. This property can also be used to describe a [[Demand]]. While this property is listed as expected on a number of common types, it can be used in others. In that case, using a second type, such as Product or a subtype of Product, can clarify the nature of the offer.\n ", + "oneOf": [ + { "anyOf": [{ "$ref": "schema:Demand" }, { "$ref": "schema:Offer" }] }, + { + "type": "array", + "items": { + "anyOf": [{ "$ref": "schema:Demand" }, { "$ref": "schema:Offer" }] + } + } + ] + }, + "suitableForDiet": { + "description": "Indicates a dietary restriction or guideline for which this recipe or menu item is suitable, e.g. diabetic, halal etc.", + "oneOf": [ + { "$ref": "schema:RestrictedDiet" }, + { "type": "array", "items": { "$ref": "schema:RestrictedDiet" } } + ] + } + } +} diff --git a/registry/schema-org/MenuSection.schema.json b/registry/schema-org/MenuSection.schema.json new file mode 100644 index 0000000..96711da --- /dev/null +++ b/registry/schema-org/MenuSection.schema.json @@ -0,0 +1,29 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:MenuSection", + "title": "MenuSection", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "The most generic kind of creative work, including books, movies, photographs, software programs, etc.", + "$ref": "schema:CreativeWork" + } + ], + "properties": { + "hasMenuItem": { + "description": "A food or drink item contained in a menu or menu section.", + "oneOf": [ + { "$ref": "schema:MenuItem" }, + { "type": "array", "items": { "$ref": "schema:MenuItem" } } + ] + }, + "hasMenuSection": { + "description": "A subgrouping of the menu (by dishes, course, serving time period, etc.).", + "oneOf": [ + { "$ref": "schema:MenuSection" }, + { "type": "array", "items": { "$ref": "schema:MenuSection" } } + ] + } + } +} diff --git a/registry/schema-org/MerchantReturnEnumeration.schema.json b/registry/schema-org/MerchantReturnEnumeration.schema.json new file mode 100644 index 0000000..a001f30 --- /dev/null +++ b/registry/schema-org/MerchantReturnEnumeration.schema.json @@ -0,0 +1,25 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:MerchantReturnEnumeration", + "title": "MerchantReturnEnumeration", + "description": "Enumerates several kinds of product return policies.", + "type": "string", + "oneOf": [ + { + "description": "Specifies that there is a finite window for product returns.", + "const": "MerchantReturnFiniteReturnWindow" + }, + { + "description": "Specifies that product returns are not permitted.", + "const": "MerchantReturnNotPermitted" + }, + { + "description": "Specifies that there is an unlimited window for product returns.", + "const": "MerchantReturnUnlimitedWindow" + }, + { + "description": "Specifies that a product return policy is not provided.", + "const": "MerchantReturnUnspecified" + } + ] +} diff --git a/registry/schema-org/MerchantReturnPolicy.schema.json b/registry/schema-org/MerchantReturnPolicy.schema.json new file mode 100644 index 0000000..5927bce --- /dev/null +++ b/registry/schema-org/MerchantReturnPolicy.schema.json @@ -0,0 +1,169 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:MerchantReturnPolicy", + "title": "MerchantReturnPolicy", + "description": "A MerchantReturnPolicy provides information about product return policies associated with an [[Organization]], [[Product]], or [[Offer]].", + "type": "object", + "allOf": [ + { + "description": "A utility class that serves as the umbrella for a number of 'intangible' things such as quantities, structured values, etc.", + "$ref": "schema:Intangible" + } + ], + "properties": { + "additionalProperty": { + "description": "A property-value pair representing an additional characteristic of the entity, e.g. a product feature or another characteristic for which there is no matching property in schema.org.\\n\\nNote: Publishers should be aware that applications designed to use specific schema.org properties (e.g. https://schema.org/width, https://schema.org/color, https://schema.org/gtin13, ...) will typically expect such data to be provided using those properties, rather than using the generic property/value mechanism.\n", + "oneOf": [ + { "$ref": "schema:PropertyValue" }, + { "type": "array", "items": { "$ref": "schema:PropertyValue" } } + ] + }, + "applicableCountry": { + "description": "A country where a particular merchant return policy applies to, for example the two-letter ISO 3166-1 alpha-2 country code.", + "oneOf": [ + { "anyOf": [{ "type": "string" }, { "$ref": "schema:Country" }] }, + { + "type": "array", + "items": { + "anyOf": [{ "type": "string" }, { "$ref": "schema:Country" }] + } + } + ] + }, + "customerRemorseReturnFees": { + "description": "The type of return fees if the product is returned due to customer remorse.", + "$ref": "schema:ReturnFeesEnumeration" + }, + "customerRemorseReturnLabelSource": { + "description": "The method (from an enumeration) by which the customer obtains a return shipping label for a product returned due to customer remorse.", + "$ref": "schema:ReturnLabelSourceEnumeration" + }, + "customerRemorseReturnShippingFeesAmount": { + "description": "The amount of shipping costs if a product is returned due to customer remorse. Applicable when property [[customerRemorseReturnFees]] equals [[ReturnShippingFees]].", + "$ref": "schema:MonetaryAmount" + }, + "inStoreReturnsOffered": { + "description": "Are in-store returns offered? (For more advanced return methods use the [[returnMethod]] property.)", + "type": "boolean" + }, + "itemCondition": { + "description": "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.", + "oneOf": [ + { "$ref": "schema:OfferItemCondition" }, + { "type": "array", "items": { "$ref": "schema:OfferItemCondition" } } + ] + }, + "itemDefectReturnFees": { + "description": "The type of return fees for returns of defect products.", + "$ref": "schema:ReturnFeesEnumeration" + }, + "itemDefectReturnLabelSource": { + "description": "The method (from an enumeration) by which the customer obtains a return shipping label for a defect product.", + "$ref": "schema:ReturnLabelSourceEnumeration" + }, + "itemDefectReturnShippingFeesAmount": { + "description": "Amount of shipping costs for defect product returns. Applicable when property [[itemDefectReturnFees]] equals [[ReturnShippingFees]].", + "oneOf": [ + { "$ref": "schema:MonetaryAmount" }, + { "type": "array", "items": { "$ref": "schema:MonetaryAmount" } } + ] + }, + "merchantReturnDays": { + "description": "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]].", + "oneOf": [ + { + "anyOf": [ + { "type": "integer" }, + { "type": "string", "format": "date" }, + { "type": "string", "format": "date-time" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "integer" }, + { "type": "string", "format": "date" }, + { "type": "string", "format": "date-time" } + ] + } + } + ] + }, + "merchantReturnLink": { + "description": "Specifies a Web page or service by URL, for product returns.", + "oneOf": [ + { "type": "string", "format": "uri" }, + { "type": "array", "items": { "type": "string", "format": "uri" } } + ] + }, + "refundType": { + "description": "A refund type, from an enumerated list.", + "oneOf": [ + { "$ref": "schema:RefundTypeEnumeration" }, + { "type": "array", "items": { "$ref": "schema:RefundTypeEnumeration" } } + ] + }, + "restockingFee": { + "description": "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.", + "oneOf": [ + { + "anyOf": [{ "type": "number" }, { "$ref": "schema:MonetaryAmount" }] + }, + { + "type": "array", + "items": { + "anyOf": [{ "type": "number" }, { "$ref": "schema:MonetaryAmount" }] + } + } + ] + }, + "returnFees": { + "description": "The type of return fees for purchased products (for any return reason).", + "$ref": "schema:ReturnFeesEnumeration" + }, + "returnLabelSource": { + "description": "The method (from an enumeration) by which the customer obtains a return shipping label for a product returned for any reason.", + "$ref": "schema:ReturnLabelSourceEnumeration" + }, + "returnMethod": { + "description": "The type of return method offered, specified from an enumeration.", + "$ref": "schema:ReturnMethodEnumeration" + }, + "returnPolicyCategory": { + "description": "Specifies an applicable return policy (from an enumeration).", + "oneOf": [ + { "$ref": "schema:MerchantReturnEnumeration" }, + { + "type": "array", + "items": { "$ref": "schema:MerchantReturnEnumeration" } + } + ] + }, + "returnPolicyCountry": { + "description": "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.", + "anyOf": [{ "type": "string" }, { "$ref": "schema:Country" }] + }, + "returnPolicySeasonalOverride": { + "description": "Seasonal override of a return policy.", + "oneOf": [ + { "$ref": "schema:MerchantReturnPolicySeasonalOverride" }, + { + "type": "array", + "items": { "$ref": "schema:MerchantReturnPolicySeasonalOverride" } + } + ] + }, + "returnShippingFeesAmount": { + "description": "Amount of shipping costs for product returns (for any reason). Applicable when property [[returnFees]] equals [[ReturnShippingFees]].", + "oneOf": [ + { "$ref": "schema:MonetaryAmount" }, + { "type": "array", "items": { "$ref": "schema:MonetaryAmount" } } + ] + }, + "validForMemberTier": { + "description": "The membership program tier an Offer (or a PriceSpecification, OfferShippingDetails, or MerchantReturnPolicy under an Offer) is valid for.", + "$ref": "schema:MemberProgramTier" + } + } +} diff --git a/registry/schema-org/MerchantReturnPolicySeasonalOverride.schema.json b/registry/schema-org/MerchantReturnPolicySeasonalOverride.schema.json new file mode 100644 index 0000000..35f0bdc --- /dev/null +++ b/registry/schema-org/MerchantReturnPolicySeasonalOverride.schema.json @@ -0,0 +1,97 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:MerchantReturnPolicySeasonalOverride", + "title": "MerchantReturnPolicySeasonalOverride", + "description": "A seasonal override of a return policy, for example used for holidays.", + "type": "object", + "allOf": [ + { + "description": "A utility class that serves as the umbrella for a number of 'intangible' things such as quantities, structured values, etc.", + "$ref": "schema:Intangible" + } + ], + "properties": { + "endDate": { + "description": "The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).", + "anyOf": [ + { "type": "string", "format": "date" }, + { "type": "string", "format": "date-time" } + ] + }, + "merchantReturnDays": { + "description": "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]].", + "oneOf": [ + { + "anyOf": [ + { "type": "integer" }, + { "type": "string", "format": "date" }, + { "type": "string", "format": "date-time" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "integer" }, + { "type": "string", "format": "date" }, + { "type": "string", "format": "date-time" } + ] + } + } + ] + }, + "refundType": { + "description": "A refund type, from an enumerated list.", + "oneOf": [ + { "$ref": "schema:RefundTypeEnumeration" }, + { "type": "array", "items": { "$ref": "schema:RefundTypeEnumeration" } } + ] + }, + "restockingFee": { + "description": "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.", + "oneOf": [ + { + "anyOf": [{ "type": "number" }, { "$ref": "schema:MonetaryAmount" }] + }, + { + "type": "array", + "items": { + "anyOf": [{ "type": "number" }, { "$ref": "schema:MonetaryAmount" }] + } + } + ] + }, + "returnFees": { + "description": "The type of return fees for purchased products (for any return reason).", + "$ref": "schema:ReturnFeesEnumeration" + }, + "returnMethod": { + "description": "The type of return method offered, specified from an enumeration.", + "$ref": "schema:ReturnMethodEnumeration" + }, + "returnPolicyCategory": { + "description": "Specifies an applicable return policy (from an enumeration).", + "oneOf": [ + { "$ref": "schema:MerchantReturnEnumeration" }, + { + "type": "array", + "items": { "$ref": "schema:MerchantReturnEnumeration" } + } + ] + }, + "returnShippingFeesAmount": { + "description": "Amount of shipping costs for product returns (for any reason). Applicable when property [[returnFees]] equals [[ReturnShippingFees]].", + "oneOf": [ + { "$ref": "schema:MonetaryAmount" }, + { "type": "array", "items": { "$ref": "schema:MonetaryAmount" } } + ] + }, + "startDate": { + "description": "The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).", + "anyOf": [ + { "type": "string", "format": "date" }, + { "type": "string", "format": "date-time" } + ] + } + } +} diff --git a/registry/schema-org/Message.schema.json b/registry/schema-org/Message.schema.json new file mode 100644 index 0000000..6470d48 --- /dev/null +++ b/registry/schema-org/Message.schema.json @@ -0,0 +1,153 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Message", + "title": "Message", + "description": "A single message from a sender to one or more organizations or people.", + "type": "object", + "allOf": [ + { + "description": "The most generic kind of creative work, including books, movies, photographs, software programs, etc.", + "$ref": "schema:CreativeWork" + } + ], + "properties": { + "bccRecipient": { + "description": "A sub property of recipient. The recipient blind copied on a message.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:ContactPoint" }, + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:ContactPoint" }, + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + } + } + ] + }, + "ccRecipient": { + "description": "A sub property of recipient. The recipient copied on a message.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:ContactPoint" }, + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:ContactPoint" }, + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + } + } + ] + }, + "dateRead": { + "description": "The date/time at which the message has been read by the recipient if a single recipient exists.", + "anyOf": [ + { "type": "string", "format": "date" }, + { "type": "string", "format": "date-time" } + ] + }, + "dateReceived": { + "description": "The date/time the message was received if a single recipient exists.", + "type": "string", + "format": "date-time" + }, + "dateSent": { + "description": "The date/time at which the message was sent.", + "type": "string", + "format": "date-time" + }, + "messageAttachment": { + "description": "A CreativeWork attached to the message.", + "oneOf": [ + { "$ref": "schema:CreativeWork" }, + { "type": "array", "items": { "$ref": "schema:CreativeWork" } } + ] + }, + "recipient": { + "description": "A sub property of participant. The participant who is at the receiving end of the action.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:Audience" }, + { "$ref": "schema:ContactPoint" }, + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:Audience" }, + { "$ref": "schema:ContactPoint" }, + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + } + } + ] + }, + "sender": { + "description": "A sub property of participant. The participant who is at the sending end of the action.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:Audience" }, + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:Audience" }, + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + } + } + ] + }, + "toRecipient": { + "description": "A sub property of recipient. The recipient who was directly sent the message.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:Audience" }, + { "$ref": "schema:ContactPoint" }, + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:Audience" }, + { "$ref": "schema:ContactPoint" }, + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + } + } + ] + } + } +} diff --git a/registry/schema-org/MiddleSchool.schema.json b/registry/schema-org/MiddleSchool.schema.json new file mode 100644 index 0000000..1453ce6 --- /dev/null +++ b/registry/schema-org/MiddleSchool.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:MiddleSchool", + "title": "MiddleSchool", + "description": "A middle school (typically for children aged around 11-14, although this varies somewhat).", + "type": "object", + "allOf": [ + { + "description": "An educational organization.", + "$ref": "schema:EducationalOrganization" + } + ] +} diff --git a/registry/schema-org/MobileApplication.schema.json b/registry/schema-org/MobileApplication.schema.json new file mode 100644 index 0000000..5b5e25b --- /dev/null +++ b/registry/schema-org/MobileApplication.schema.json @@ -0,0 +1,19 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:MobileApplication", + "title": "MobileApplication", + "description": "A software application designed specifically to work well on a mobile device such as a telephone.", + "type": "object", + "allOf": [ + { + "description": "A software application.", + "$ref": "schema:SoftwareApplication" + } + ], + "properties": { + "carrierRequirements": { + "description": "Specifies specific carrier(s) requirements for the application (e.g. an application may only work on a specific carrier network).", + "type": "string" + } + } +} diff --git a/registry/schema-org/MobilePhoneStore.schema.json b/registry/schema-org/MobilePhoneStore.schema.json new file mode 100644 index 0000000..d1ff04f --- /dev/null +++ b/registry/schema-org/MobilePhoneStore.schema.json @@ -0,0 +1,8 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:MobilePhoneStore", + "title": "MobilePhoneStore", + "description": "A store that sells mobile phones and related accessories.", + "type": "object", + "allOf": [{ "description": "A retail good store.", "$ref": "schema:Store" }] +} diff --git a/registry/schema-org/MolecularEntity.schema.json b/registry/schema-org/MolecularEntity.schema.json new file mode 100644 index 0000000..c786f01 --- /dev/null +++ b/registry/schema-org/MolecularEntity.schema.json @@ -0,0 +1,85 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:MolecularEntity", + "title": "MolecularEntity", + "description": "Any constitutionally or isotopically distinct atom, molecule, ion, ion pair, radical, radical ion, complex, conformer etc., identifiable as a separately distinguishable entity.", + "type": "object", + "allOf": [ + { + "description": "Any biological, chemical, or biochemical thing. For example: a protein; a gene; a chemical; a synthetic chemical.", + "$ref": "schema:BioChemEntity" + } + ], + "properties": { + "chemicalRole": { + "description": "A role played by the BioChemEntity within a chemical context.", + "oneOf": [ + { "$ref": "schema:DefinedTerm" }, + { "type": "array", "items": { "$ref": "schema:DefinedTerm" } } + ] + }, + "inChI": { + "description": "Non-proprietary identifier for molecular entity that can be used in printed and electronic data sources thus enabling easier linking of diverse data compilations.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "inChIKey": { + "description": "InChIKey is a hashed version of the full InChI (using the SHA-256 algorithm).", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "iupacName": { + "description": "Systematic method of naming chemical compounds as recommended by the International Union of Pure and Applied Chemistry (IUPAC).", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "molecularFormula": { + "description": "The empirical formula is the simplest whole number ratio of all the atoms in a molecule.", + "type": "string" + }, + "molecularWeight": { + "description": "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 '.", + "oneOf": [ + { + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:QuantitativeValue" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:QuantitativeValue" } + ] + } + } + ] + }, + "monoisotopicMolecularWeight": { + "description": "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 '.", + "anyOf": [{ "type": "string" }, { "$ref": "schema:QuantitativeValue" }] + }, + "potentialUse": { + "description": "Intended use of the BioChemEntity by humans.", + "oneOf": [ + { "$ref": "schema:DefinedTerm" }, + { "type": "array", "items": { "$ref": "schema:DefinedTerm" } } + ] + }, + "smiles": { + "description": "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.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + } + } +} diff --git a/registry/schema-org/MonetaryAmount.schema.json b/registry/schema-org/MonetaryAmount.schema.json new file mode 100644 index 0000000..69315a6 --- /dev/null +++ b/registry/schema-org/MonetaryAmount.schema.json @@ -0,0 +1,50 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:MonetaryAmount", + "title": "MonetaryAmount", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:StructuredValue" + } + ], + "properties": { + "currency": { + "description": "The currency in which the monetary amount is expressed.\\n\\nUse standard formats: [ISO 4217 currency format](http://en.wikipedia.org/wiki/ISO_4217), e.g. \"USD\"; [Ticker symbol](https://en.wikipedia.org/wiki/List_of_cryptocurrencies) for cryptocurrencies, e.g. \"BTC\"; well known names for [Local Exchange Trading Systems](https://en.wikipedia.org/wiki/Local_exchange_trading_system) (LETS) and other currency types, e.g. \"Ithaca HOUR\".", + "type": "string" + }, + "maxValue": { + "description": "The upper value of some characteristic or property.", + "type": "number" + }, + "minValue": { + "description": "The lower value of some characteristic or property.", + "type": "number" + }, + "validFrom": { + "description": "The date when the item becomes valid.", + "anyOf": [ + { "type": "string", "format": "date" }, + { "type": "string", "format": "date-time" } + ] + }, + "validThrough": { + "description": "The date after when the item is not valid. For example the end of an offer, salary period, or a period of opening hours.", + "anyOf": [ + { "type": "string", "format": "date" }, + { "type": "string", "format": "date-time" } + ] + }, + "value": { + "description": "The value of a [[QuantitativeValue]] (including [[Observation]]) or property value node.\\n\\n* For [[QuantitativeValue]] and [[MonetaryAmount]], the recommended type for values is 'Number'.\\n* For [[PropertyValue]], it can be 'Text', 'Number', 'Boolean', or 'StructuredValue'.\\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.", + "anyOf": [ + { "type": "boolean" }, + { "type": "number" }, + { "type": "string" }, + { "$ref": "schema:StructuredValue" } + ] + } + } +} diff --git a/registry/schema-org/MonetaryAmountDistribution.schema.json b/registry/schema-org/MonetaryAmountDistribution.schema.json new file mode 100644 index 0000000..5422e39 --- /dev/null +++ b/registry/schema-org/MonetaryAmountDistribution.schema.json @@ -0,0 +1,19 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:MonetaryAmountDistribution", + "title": "MonetaryAmountDistribution", + "description": "A statistical distribution of monetary amounts.", + "type": "object", + "allOf": [ + { + "description": "A statistical distribution of values.", + "$ref": "schema:QuantitativeValueDistribution" + } + ], + "properties": { + "currency": { + "description": "The currency in which the monetary amount is expressed.\\n\\nUse standard formats: [ISO 4217 currency format](http://en.wikipedia.org/wiki/ISO_4217), e.g. \"USD\"; [Ticker symbol](https://en.wikipedia.org/wiki/List_of_cryptocurrencies) for cryptocurrencies, e.g. \"BTC\"; well known names for [Local Exchange Trading Systems](https://en.wikipedia.org/wiki/Local_exchange_trading_system) (LETS) and other currency types, e.g. \"Ithaca HOUR\".", + "type": "string" + } + } +} diff --git a/registry/schema-org/MonetaryGrant.schema.json b/registry/schema-org/MonetaryGrant.schema.json new file mode 100644 index 0000000..4854e01 --- /dev/null +++ b/registry/schema-org/MonetaryGrant.schema.json @@ -0,0 +1,39 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:MonetaryGrant", + "title": "MonetaryGrant", + "description": "A monetary grant.", + "type": "object", + "allOf": [ + { + "description": "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 ", + "$ref": "schema:Grant" + } + ], + "properties": { + "amount": { + "description": "The amount of money.", + "anyOf": [{ "type": "number" }, { "$ref": "schema:MonetaryAmount" }] + }, + "funder": { + "description": "A person or organization that supports (sponsors) something through some kind of financial contribution.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + } + } + ] + } + } +} diff --git a/registry/schema-org/MoneyTransfer.schema.json b/registry/schema-org/MoneyTransfer.schema.json new file mode 100644 index 0000000..da9990e --- /dev/null +++ b/registry/schema-org/MoneyTransfer.schema.json @@ -0,0 +1,39 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:MoneyTransfer", + "title": "MoneyTransfer", + "description": "The act of transferring money from one place to another place. This may occur electronically or physically.", + "type": "object", + "allOf": [ + { + "description": "The act of transferring/moving (abstract or concrete) animate or inanimate objects from one place to another.", + "$ref": "schema:TransferAction" + } + ], + "properties": { + "amount": { + "description": "The amount of money.", + "anyOf": [{ "type": "number" }, { "$ref": "schema:MonetaryAmount" }] + }, + "beneficiaryBank": { + "description": "A bank or bank’s branch, financial institution or international financial institution operating the beneficiary’s bank account or releasing funds for the beneficiary.", + "oneOf": [ + { + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:BankOrCreditUnion" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:BankOrCreditUnion" } + ] + } + } + ] + } + } +} diff --git a/registry/schema-org/MortgageLoan.schema.json b/registry/schema-org/MortgageLoan.schema.json new file mode 100644 index 0000000..4ceccff --- /dev/null +++ b/registry/schema-org/MortgageLoan.schema.json @@ -0,0 +1,26 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:MortgageLoan", + "title": "MortgageLoan", + "description": "A loan in which property or real estate is used as collateral. (A loan securitized against some real estate.)", + "type": "object", + "allOf": [ + { + "description": "A financial product for the loaning of an amount of money, or line of credit, under agreed terms and charges.", + "$ref": "schema:LoanOrCredit" + } + ], + "properties": { + "domiciledMortgage": { + "description": "Whether borrower is a resident of the jurisdiction where the property is located.", + "type": "boolean" + }, + "loanMortgageMandateAmount": { + "description": "Amount of mortgage mandate that can be converted into a proper mortgage at a later stage.", + "oneOf": [ + { "$ref": "schema:MonetaryAmount" }, + { "type": "array", "items": { "$ref": "schema:MonetaryAmount" } } + ] + } + } +} diff --git a/registry/schema-org/Mosque.schema.json b/registry/schema-org/Mosque.schema.json new file mode 100644 index 0000000..d0c9e7d --- /dev/null +++ b/registry/schema-org/Mosque.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Mosque", + "title": "Mosque", + "description": "A mosque.", + "type": "object", + "allOf": [ + { + "description": "Place of worship, such as a church, synagogue, or mosque.", + "$ref": "schema:PlaceOfWorship" + } + ] +} diff --git a/registry/schema-org/Motel.schema.json b/registry/schema-org/Motel.schema.json new file mode 100644 index 0000000..7884069 --- /dev/null +++ b/registry/schema-org/Motel.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Motel", + "title": "Motel", + "description": "A motel.\n\nSee also the dedicated document on the use of schema.org for marking up hotels and other forms of accommodations.\n", + "type": "object", + "allOf": [ + { + "description": "A lodging business, such as a motel, hotel, or inn.", + "$ref": "schema:LodgingBusiness" + } + ] +} diff --git a/registry/schema-org/Motorcycle.schema.json b/registry/schema-org/Motorcycle.schema.json new file mode 100644 index 0000000..6b3af77 --- /dev/null +++ b/registry/schema-org/Motorcycle.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Motorcycle", + "title": "Motorcycle", + "description": "A motorcycle or motorbike is a single-track, two-wheeled motor vehicle.", + "type": "object", + "allOf": [ + { + "description": "A vehicle is a device that is designed or used to transport people or cargo over land, water, air, or through space.", + "$ref": "schema:Vehicle" + } + ] +} diff --git a/registry/schema-org/MotorcycleDealer.schema.json b/registry/schema-org/MotorcycleDealer.schema.json new file mode 100644 index 0000000..b89ae3f --- /dev/null +++ b/registry/schema-org/MotorcycleDealer.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:MotorcycleDealer", + "title": "MotorcycleDealer", + "description": "A motorcycle dealer.", + "type": "object", + "allOf": [ + { + "description": "Car repair, sales, or parts.", + "$ref": "schema:AutomotiveBusiness" + } + ] +} diff --git a/registry/schema-org/MotorcycleRepair.schema.json b/registry/schema-org/MotorcycleRepair.schema.json new file mode 100644 index 0000000..efc2660 --- /dev/null +++ b/registry/schema-org/MotorcycleRepair.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:MotorcycleRepair", + "title": "MotorcycleRepair", + "description": "A motorcycle repair shop.", + "type": "object", + "allOf": [ + { + "description": "Car repair, sales, or parts.", + "$ref": "schema:AutomotiveBusiness" + } + ] +} diff --git a/registry/schema-org/MotorizedBicycle.schema.json b/registry/schema-org/MotorizedBicycle.schema.json new file mode 100644 index 0000000..9af24ce --- /dev/null +++ b/registry/schema-org/MotorizedBicycle.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:MotorizedBicycle", + "title": "MotorizedBicycle", + "description": "A motorized bicycle is a bicycle with an attached motor used to power the vehicle, or to assist with pedaling.", + "type": "object", + "allOf": [ + { + "description": "A vehicle is a device that is designed or used to transport people or cargo over land, water, air, or through space.", + "$ref": "schema:Vehicle" + } + ] +} diff --git a/registry/schema-org/Mountain.schema.json b/registry/schema-org/Mountain.schema.json new file mode 100644 index 0000000..9b577fb --- /dev/null +++ b/registry/schema-org/Mountain.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Mountain", + "title": "Mountain", + "description": "A mountain, like Mount Whitney or Mount Everest.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:Landform" + } + ] +} diff --git a/registry/schema-org/MoveAction.schema.json b/registry/schema-org/MoveAction.schema.json new file mode 100644 index 0000000..48e3ff9 --- /dev/null +++ b/registry/schema-org/MoveAction.schema.json @@ -0,0 +1,29 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:MoveAction", + "title": "MoveAction", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "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).", + "$ref": "schema:Action" + } + ], + "properties": { + "fromLocation": { + "description": "A sub property of location. The original location of the object or the agent before the action.", + "oneOf": [ + { "$ref": "schema:Place" }, + { "type": "array", "items": { "$ref": "schema:Place" } } + ] + }, + "toLocation": { + "description": "A sub property of location. The final location of the object or the agent after the action.", + "oneOf": [ + { "$ref": "schema:Place" }, + { "type": "array", "items": { "$ref": "schema:Place" } } + ] + } + } +} diff --git a/registry/schema-org/Movie.schema.json b/registry/schema-org/Movie.schema.json new file mode 100644 index 0000000..2ea8508 --- /dev/null +++ b/registry/schema-org/Movie.schema.json @@ -0,0 +1,105 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Movie", + "title": "Movie", + "description": "A movie.", + "type": "object", + "allOf": [ + { + "description": "The most generic kind of creative work, including books, movies, photographs, software programs, etc.", + "$ref": "schema:CreativeWork" + } + ], + "properties": { + "actor": { + "description": "An actor (individual or a group), 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.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:PerformingGroup" }, + { "$ref": "schema:Person" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:PerformingGroup" }, + { "$ref": "schema:Person" } + ] + } + } + ] + }, + "actors": { + "description": "An actor, e.g. in TV, radio, movie, video games etc. Actors can be associated with individual items or with a series, episode, clip.", + "oneOf": [ + { "$ref": "schema:Person" }, + { "type": "array", "items": { "$ref": "schema:Person" } } + ] + }, + "countryOfOrigin": { + "description": "The country of origin of something, including products as well as creative works such as movie and TV content.\n\nIn the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable.\n\nIn the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.", + "$ref": "schema:Country" + }, + "director": { + "description": "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.", + "$ref": "schema:Person" + }, + "directors": { + "description": "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.", + "oneOf": [ + { "$ref": "schema:Person" }, + { "type": "array", "items": { "$ref": "schema:Person" } } + ] + }, + "duration": { + "description": "The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 duration format](http://en.wikipedia.org/wiki/ISO_8601).", + "anyOf": [ + { "type": "string", "$comment": "https://schema.org/Duration" }, + { "$ref": "schema:QuantitativeValue" } + ] + }, + "musicBy": { + "description": "The composer of the soundtrack.", + "anyOf": [{ "$ref": "schema:MusicGroup" }, { "$ref": "schema:Person" }] + }, + "productionCompany": { + "description": "The production company or studio responsible for the item, e.g. series, video game, episode etc.", + "$ref": "schema:Organization" + }, + "subtitleLanguage": { + "description": "Languages in which subtitles/captions are available, in [IETF BCP 47 standard format](http://tools.ietf.org/html/bcp47).", + "oneOf": [ + { "anyOf": [{ "type": "string" }, { "$ref": "schema:Language" }] }, + { + "type": "array", + "items": { + "anyOf": [{ "type": "string" }, { "$ref": "schema:Language" }] + } + } + ] + }, + "titleEIDR": { + "description": "An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing at the most general/abstract level, a work of film or television.\n\nFor 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]].\n\nSince schema.org types like [[Movie]], [[TVEpisode]], [[TVSeason]], and [[TVSeries]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description.\n", + "oneOf": [ + { + "anyOf": [{ "type": "string", "format": "uri" }, { "type": "string" }] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" } + ] + } + } + ] + }, + "trailer": { + "description": "The trailer of a movie or TV/radio series, season, episode, etc.", + "$ref": "schema:VideoObject" + } + } +} diff --git a/registry/schema-org/MovieClip.schema.json b/registry/schema-org/MovieClip.schema.json new file mode 100644 index 0000000..7e1eda2 --- /dev/null +++ b/registry/schema-org/MovieClip.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:MovieClip", + "title": "MovieClip", + "description": "A short segment/part of a movie.", + "type": "object", + "allOf": [ + { + "description": "A short TV or radio program or a segment/part of a program.", + "$ref": "schema:Clip" + } + ] +} diff --git a/registry/schema-org/MovieRentalStore.schema.json b/registry/schema-org/MovieRentalStore.schema.json new file mode 100644 index 0000000..7e2cb29 --- /dev/null +++ b/registry/schema-org/MovieRentalStore.schema.json @@ -0,0 +1,8 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:MovieRentalStore", + "title": "MovieRentalStore", + "description": "A movie rental store.", + "type": "object", + "allOf": [{ "description": "A retail good store.", "$ref": "schema:Store" }] +} diff --git a/registry/schema-org/MovieSeries.schema.json b/registry/schema-org/MovieSeries.schema.json new file mode 100644 index 0000000..fe0a103 --- /dev/null +++ b/registry/schema-org/MovieSeries.schema.json @@ -0,0 +1,65 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:MovieSeries", + "title": "MovieSeries", + "description": "A series of movies. Included movies can be indicated with the hasPart property.", + "type": "object", + "allOf": [ + { + "description": "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 ", + "$ref": "schema:CreativeWorkSeries" + } + ], + "properties": { + "actor": { + "description": "An actor (individual or a group), 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.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:PerformingGroup" }, + { "$ref": "schema:Person" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:PerformingGroup" }, + { "$ref": "schema:Person" } + ] + } + } + ] + }, + "actors": { + "description": "An actor, e.g. in TV, radio, movie, video games etc. Actors can be associated with individual items or with a series, episode, clip.", + "oneOf": [ + { "$ref": "schema:Person" }, + { "type": "array", "items": { "$ref": "schema:Person" } } + ] + }, + "director": { + "description": "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.", + "$ref": "schema:Person" + }, + "directors": { + "description": "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.", + "oneOf": [ + { "$ref": "schema:Person" }, + { "type": "array", "items": { "$ref": "schema:Person" } } + ] + }, + "musicBy": { + "description": "The composer of the soundtrack.", + "anyOf": [{ "$ref": "schema:MusicGroup" }, { "$ref": "schema:Person" }] + }, + "productionCompany": { + "description": "The production company or studio responsible for the item, e.g. series, video game, episode etc.", + "$ref": "schema:Organization" + }, + "trailer": { + "description": "The trailer of a movie or TV/radio series, season, episode, etc.", + "$ref": "schema:VideoObject" + } + } +} diff --git a/registry/schema-org/MovieTheater.schema.json b/registry/schema-org/MovieTheater.schema.json new file mode 100644 index 0000000..f39c5cf --- /dev/null +++ b/registry/schema-org/MovieTheater.schema.json @@ -0,0 +1,23 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:MovieTheater", + "title": "MovieTheater", + "description": "A movie theater.", + "type": "object", + "allOf": [ + { + "description": "A public structure, such as a town hall or concert hall.", + "$ref": "schema:CivicStructure" + }, + { + "description": "A business providing entertainment.", + "$ref": "schema:EntertainmentBusiness" + } + ], + "properties": { + "screenCount": { + "description": "The number of screens in the movie theater.", + "type": "number" + } + } +} diff --git a/registry/schema-org/MovingCompany.schema.json b/registry/schema-org/MovingCompany.schema.json new file mode 100644 index 0000000..4b4f9a3 --- /dev/null +++ b/registry/schema-org/MovingCompany.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:MovingCompany", + "title": "MovingCompany", + "description": "A moving company.", + "type": "object", + "allOf": [ + { + "description": "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).", + "$ref": "schema:HomeAndConstructionBusiness" + } + ] +} diff --git a/registry/schema-org/Muscle.schema.json b/registry/schema-org/Muscle.schema.json new file mode 100644 index 0000000..64d9b71 --- /dev/null +++ b/registry/schema-org/Muscle.schema.json @@ -0,0 +1,35 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Muscle", + "title": "Muscle", + "description": "A muscle is an anatomical structure consisting of a contractile form of tissue that animals use to effect movement.", + "type": "object", + "allOf": [ + { + "description": "Any part of the human body, typically a component of an anatomical system. Organs, tissues, and cells are all anatomical structures.", + "$ref": "schema:AnatomicalStructure" + } + ], + "properties": { + "antagonist": { + "description": "The muscle whose action counteracts the specified muscle.", + "$ref": "schema:Muscle" + }, + "bloodSupply": { + "description": "The blood vessel that carries blood from the heart to the muscle.", + "$ref": "schema:Vessel" + }, + "insertion": { + "description": "The place of attachment of a muscle, or what the muscle moves.", + "$ref": "schema:AnatomicalStructure" + }, + "muscleAction": { + "description": "The movement the muscle generates.", + "type": "string" + }, + "nerve": { + "description": "The underlying innervation associated with the muscle.", + "$ref": "schema:Nerve" + } + } +} diff --git a/registry/schema-org/Museum.schema.json b/registry/schema-org/Museum.schema.json new file mode 100644 index 0000000..102617b --- /dev/null +++ b/registry/schema-org/Museum.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Museum", + "title": "Museum", + "description": "A museum.", + "type": "object", + "allOf": [ + { + "description": "A public structure, such as a town hall or concert hall.", + "$ref": "schema:CivicStructure" + } + ] +} diff --git a/registry/schema-org/MusicAlbum.schema.json b/registry/schema-org/MusicAlbum.schema.json new file mode 100644 index 0000000..4e3c82c --- /dev/null +++ b/registry/schema-org/MusicAlbum.schema.json @@ -0,0 +1,40 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:MusicAlbum", + "title": "MusicAlbum", + "description": "A collection of music tracks.", + "type": "object", + "allOf": [ + { + "description": "A collection of music tracks in playlist form.", + "$ref": "schema:MusicPlaylist" + } + ], + "properties": { + "albumProductionType": { + "description": "Classification of the album by its type of content: soundtrack, live album, studio album, etc.", + "oneOf": [ + { "$ref": "schema:MusicAlbumProductionType" }, + { + "type": "array", + "items": { "$ref": "schema:MusicAlbumProductionType" } + } + ] + }, + "albumRelease": { + "description": "A release of this album.", + "oneOf": [ + { "$ref": "schema:MusicRelease" }, + { "type": "array", "items": { "$ref": "schema:MusicRelease" } } + ] + }, + "albumReleaseType": { + "description": "The kind of release which this album is: single, EP or album.", + "$ref": "schema:MusicAlbumReleaseType" + }, + "byArtist": { + "description": "The artist that performed this album or recording.", + "anyOf": [{ "$ref": "schema:MusicGroup" }, { "$ref": "schema:Person" }] + } + } +} diff --git a/registry/schema-org/MusicAlbumProductionType.schema.json b/registry/schema-org/MusicAlbumProductionType.schema.json new file mode 100644 index 0000000..76f4f14 --- /dev/null +++ b/registry/schema-org/MusicAlbumProductionType.schema.json @@ -0,0 +1,18 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:MusicAlbumProductionType", + "title": "MusicAlbumProductionType", + "description": "Classification of the album by its type of content: soundtrack, live album, studio album, etc.", + "type": "string", + "oneOf": [ + { "description": "CompilationAlbum.", "const": "CompilationAlbum" }, + { "description": "DJMixAlbum.", "const": "DJMixAlbum" }, + { "description": "DemoAlbum.", "const": "DemoAlbum" }, + { "description": "LiveAlbum.", "const": "LiveAlbum" }, + { "description": "MixtapeAlbum.", "const": "MixtapeAlbum" }, + { "description": "RemixAlbum.", "const": "RemixAlbum" }, + { "description": "SoundtrackAlbum.", "const": "SoundtrackAlbum" }, + { "description": "SpokenWordAlbum.", "const": "SpokenWordAlbum" }, + { "description": "StudioAlbum.", "const": "StudioAlbum" } + ] +} diff --git a/registry/schema-org/MusicAlbumReleaseType.schema.json b/registry/schema-org/MusicAlbumReleaseType.schema.json new file mode 100644 index 0000000..d98c929 --- /dev/null +++ b/registry/schema-org/MusicAlbumReleaseType.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:MusicAlbumReleaseType", + "title": "MusicAlbumReleaseType", + "description": "The kind of release which this album is: single, EP or album.", + "type": "string", + "oneOf": [ + { "description": "AlbumRelease.", "const": "AlbumRelease" }, + { "description": "BroadcastRelease.", "const": "BroadcastRelease" }, + { "description": "EPRelease.", "const": "EPRelease" }, + { "description": "SingleRelease.", "const": "SingleRelease" } + ] +} diff --git a/registry/schema-org/MusicComposition.schema.json b/registry/schema-org/MusicComposition.schema.json new file mode 100644 index 0000000..270113a --- /dev/null +++ b/registry/schema-org/MusicComposition.schema.json @@ -0,0 +1,64 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:MusicComposition", + "title": "MusicComposition", + "description": "A musical composition.", + "type": "object", + "allOf": [ + { + "description": "The most generic kind of creative work, including books, movies, photographs, software programs, etc.", + "$ref": "schema:CreativeWork" + } + ], + "properties": { + "composer": { + "description": "The person or organization who wrote a composition, or who is the composer of a work performed at some event.", + "anyOf": [{ "$ref": "schema:Organization" }, { "$ref": "schema:Person" }] + }, + "firstPerformance": { + "description": "The date and place the work was first performed.", + "$ref": "schema:Event" + }, + "includedComposition": { + "description": "Smaller compositions included in this work (e.g. a movement in a symphony).", + "oneOf": [ + { "$ref": "schema:MusicComposition" }, + { "type": "array", "items": { "$ref": "schema:MusicComposition" } } + ] + }, + "iswcCode": { + "description": "The International Standard Musical Work Code for the composition.", + "type": "string" + }, + "lyricist": { + "description": "The person who wrote the words.", + "$ref": "schema:Person" + }, + "lyrics": { + "description": "The words in the song.", + "$ref": "schema:CreativeWork" + }, + "musicArrangement": { + "description": "An arrangement derived from the composition.", + "oneOf": [ + { "$ref": "schema:MusicComposition" }, + { "type": "array", "items": { "$ref": "schema:MusicComposition" } } + ] + }, + "musicCompositionForm": { + "description": "The type of composition (e.g. overture, sonata, symphony, etc.).", + "type": "string" + }, + "musicalKey": { + "description": "The key, mode, or scale this composition uses.", + "type": "string" + }, + "recordedAs": { + "description": "An audio recording of the work.", + "oneOf": [ + { "$ref": "schema:MusicRecording" }, + { "type": "array", "items": { "$ref": "schema:MusicRecording" } } + ] + } + } +} diff --git a/registry/schema-org/MusicEvent.schema.json b/registry/schema-org/MusicEvent.schema.json new file mode 100644 index 0000000..d23f2f1 --- /dev/null +++ b/registry/schema-org/MusicEvent.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:MusicEvent", + "title": "MusicEvent", + "description": "Event type: Music event.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:Event" + } + ] +} diff --git a/registry/schema-org/MusicGroup.schema.json b/registry/schema-org/MusicGroup.schema.json new file mode 100644 index 0000000..864fe15 --- /dev/null +++ b/registry/schema-org/MusicGroup.schema.json @@ -0,0 +1,67 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:MusicGroup", + "title": "MusicGroup", + "description": "A musical group, such as a band, an orchestra, or a choir. Can also be a solo musician.", + "type": "object", + "allOf": [ + { + "description": "A performance group, such as a band, an orchestra, or a circus.", + "$ref": "schema:PerformingGroup" + } + ], + "properties": { + "album": { + "description": "A music album.", + "oneOf": [ + { "$ref": "schema:MusicAlbum" }, + { "type": "array", "items": { "$ref": "schema:MusicAlbum" } } + ] + }, + "albums": { + "description": "A collection of music albums.", + "oneOf": [ + { "$ref": "schema:MusicAlbum" }, + { "type": "array", "items": { "$ref": "schema:MusicAlbum" } } + ] + }, + "genre": { + "description": "Genre of the creative work, broadcast channel or group.", + "anyOf": [{ "type": "string", "format": "uri" }, { "type": "string" }] + }, + "musicGroupMember": { + "description": "A member of a music group—for example, John, Paul, George, or Ringo.", + "oneOf": [ + { "$ref": "schema:Person" }, + { "type": "array", "items": { "$ref": "schema:Person" } } + ] + }, + "track": { + "description": "A music recording (track)—usually a single song. If an ItemList is given, the list should contain items of type MusicRecording.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:ItemList" }, + { "$ref": "schema:MusicRecording" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:ItemList" }, + { "$ref": "schema:MusicRecording" } + ] + } + } + ] + }, + "tracks": { + "description": "A music recording (track)—usually a single song.", + "oneOf": [ + { "$ref": "schema:MusicRecording" }, + { "type": "array", "items": { "$ref": "schema:MusicRecording" } } + ] + } + } +} diff --git a/registry/schema-org/MusicPlaylist.schema.json b/registry/schema-org/MusicPlaylist.schema.json new file mode 100644 index 0000000..4dfe6fc --- /dev/null +++ b/registry/schema-org/MusicPlaylist.schema.json @@ -0,0 +1,46 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:MusicPlaylist", + "title": "MusicPlaylist", + "description": "A collection of music tracks in playlist form.", + "type": "object", + "allOf": [ + { + "description": "The most generic kind of creative work, including books, movies, photographs, software programs, etc.", + "$ref": "schema:CreativeWork" + } + ], + "properties": { + "numTracks": { + "description": "The number of tracks in this album or playlist.", + "type": "integer" + }, + "track": { + "description": "A music recording (track)—usually a single song. If an ItemList is given, the list should contain items of type MusicRecording.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:ItemList" }, + { "$ref": "schema:MusicRecording" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:ItemList" }, + { "$ref": "schema:MusicRecording" } + ] + } + } + ] + }, + "tracks": { + "description": "A music recording (track)—usually a single song.", + "oneOf": [ + { "$ref": "schema:MusicRecording" }, + { "type": "array", "items": { "$ref": "schema:MusicRecording" } } + ] + } + } +} diff --git a/registry/schema-org/MusicRecording.schema.json b/registry/schema-org/MusicRecording.schema.json new file mode 100644 index 0000000..f498162 --- /dev/null +++ b/registry/schema-org/MusicRecording.schema.json @@ -0,0 +1,42 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:MusicRecording", + "title": "MusicRecording", + "description": "A music recording (track), usually a single song.", + "type": "object", + "allOf": [ + { + "description": "The most generic kind of creative work, including books, movies, photographs, software programs, etc.", + "$ref": "schema:CreativeWork" + } + ], + "properties": { + "byArtist": { + "description": "The artist that performed this album or recording.", + "anyOf": [{ "$ref": "schema:MusicGroup" }, { "$ref": "schema:Person" }] + }, + "duration": { + "description": "The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 duration format](http://en.wikipedia.org/wiki/ISO_8601).", + "anyOf": [ + { "type": "string", "$comment": "https://schema.org/Duration" }, + { "$ref": "schema:QuantitativeValue" } + ] + }, + "inAlbum": { + "description": "The album to which this recording belongs.", + "$ref": "schema:MusicAlbum" + }, + "inPlaylist": { + "description": "The playlist to which this recording belongs.", + "$ref": "schema:MusicPlaylist" + }, + "isrcCode": { + "description": "The International Standard Recording Code for the recording.", + "type": "string" + }, + "recordingOf": { + "description": "The composition this track is a recording of.", + "$ref": "schema:MusicComposition" + } + } +} diff --git a/registry/schema-org/MusicRelease.schema.json b/registry/schema-org/MusicRelease.schema.json new file mode 100644 index 0000000..a488432 --- /dev/null +++ b/registry/schema-org/MusicRelease.schema.json @@ -0,0 +1,48 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:MusicRelease", + "title": "MusicRelease", + "description": "A MusicRelease is a specific release of a music album.", + "type": "object", + "allOf": [ + { + "description": "A collection of music tracks in playlist form.", + "$ref": "schema:MusicPlaylist" + } + ], + "properties": { + "catalogNumber": { + "description": "The catalog number for the release.", + "type": "string" + }, + "creditedTo": { + "description": "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.", + "anyOf": [{ "$ref": "schema:Organization" }, { "$ref": "schema:Person" }] + }, + "duration": { + "description": "The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 duration format](http://en.wikipedia.org/wiki/ISO_8601).", + "anyOf": [ + { "type": "string", "$comment": "https://schema.org/Duration" }, + { "$ref": "schema:QuantitativeValue" } + ] + }, + "musicReleaseFormat": { + "description": "Format of this release (the type of recording media used, i.e. compact disc, digital media, LP, etc.).", + "oneOf": [ + { "$ref": "schema:MusicReleaseFormatType" }, + { + "type": "array", + "items": { "$ref": "schema:MusicReleaseFormatType" } + } + ] + }, + "recordLabel": { + "description": "The label that issued the release.", + "$ref": "schema:Organization" + }, + "releaseOf": { + "description": "The album this is a release of.", + "$ref": "schema:MusicAlbum" + } + } +} diff --git a/registry/schema-org/MusicReleaseFormatType.schema.json b/registry/schema-org/MusicReleaseFormatType.schema.json new file mode 100644 index 0000000..ba1449d --- /dev/null +++ b/registry/schema-org/MusicReleaseFormatType.schema.json @@ -0,0 +1,19 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:MusicReleaseFormatType", + "title": "MusicReleaseFormatType", + "description": "Format of this release (the type of recording media used, i.e. compact disc, digital media, LP, etc.).", + "type": "string", + "oneOf": [ + { "description": "CDFormat.", "const": "CDFormat" }, + { "description": "CassetteFormat.", "const": "CassetteFormat" }, + { "description": "DVDFormat.", "const": "DVDFormat" }, + { + "description": "DigitalAudioTapeFormat.", + "const": "DigitalAudioTapeFormat" + }, + { "description": "DigitalFormat.", "const": "DigitalFormat" }, + { "description": "LaserDiscFormat.", "const": "LaserDiscFormat" }, + { "description": "VinylFormat.", "const": "VinylFormat" } + ] +} diff --git a/registry/schema-org/MusicStore.schema.json b/registry/schema-org/MusicStore.schema.json new file mode 100644 index 0000000..1c45487 --- /dev/null +++ b/registry/schema-org/MusicStore.schema.json @@ -0,0 +1,8 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:MusicStore", + "title": "MusicStore", + "description": "A music store.", + "type": "object", + "allOf": [{ "description": "A retail good store.", "$ref": "schema:Store" }] +} diff --git a/registry/schema-org/MusicVenue.schema.json b/registry/schema-org/MusicVenue.schema.json new file mode 100644 index 0000000..1122255 --- /dev/null +++ b/registry/schema-org/MusicVenue.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:MusicVenue", + "title": "MusicVenue", + "description": "A music venue.", + "type": "object", + "allOf": [ + { + "description": "A public structure, such as a town hall or concert hall.", + "$ref": "schema:CivicStructure" + } + ] +} diff --git a/registry/schema-org/MusicVideoObject.schema.json b/registry/schema-org/MusicVideoObject.schema.json new file mode 100644 index 0000000..4873425 --- /dev/null +++ b/registry/schema-org/MusicVideoObject.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:MusicVideoObject", + "title": "MusicVideoObject", + "description": "A music video file.", + "type": "object", + "allOf": [ + { + "description": "A media object, such as an image, video, audio, or text 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).", + "$ref": "schema:MediaObject" + } + ] +} diff --git a/registry/schema-org/NGO.schema.json b/registry/schema-org/NGO.schema.json new file mode 100644 index 0000000..ea8c2c5 --- /dev/null +++ b/registry/schema-org/NGO.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:NGO", + "title": "NGO", + "description": "Organization: Non-governmental Organization.", + "type": "object", + "allOf": [ + { + "description": "An organization such as a school, NGO, corporation, club, etc.", + "$ref": "schema:Organization" + } + ] +} diff --git a/registry/schema-org/NLNonprofitType.schema.json b/registry/schema-org/NLNonprofitType.schema.json new file mode 100644 index 0000000..354a803 --- /dev/null +++ b/registry/schema-org/NLNonprofitType.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:NLNonprofitType", + "title": "NLNonprofitType", + "description": "NLNonprofitType: Non-profit organization type originating from the Netherlands.", + "type": "object", + "allOf": [ + { + "description": "NonprofitType enumerates several kinds of official non-profit types of which a non-profit organization can be.", + "$ref": "schema:NonprofitType" + } + ] +} diff --git a/registry/schema-org/NailSalon.schema.json b/registry/schema-org/NailSalon.schema.json new file mode 100644 index 0000000..0124d42 --- /dev/null +++ b/registry/schema-org/NailSalon.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:NailSalon", + "title": "NailSalon", + "description": "A nail salon.", + "type": "object", + "allOf": [ + { + "description": "Health and beauty.", + "$ref": "schema:HealthAndBeautyBusiness" + } + ] +} diff --git a/registry/schema-org/Nerve.schema.json b/registry/schema-org/Nerve.schema.json new file mode 100644 index 0000000..c08ed36 --- /dev/null +++ b/registry/schema-org/Nerve.schema.json @@ -0,0 +1,34 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Nerve", + "title": "Nerve", + "description": "A common pathway for the electrochemical nerve impulses that are transmitted along each of the axons.", + "type": "object", + "allOf": [ + { + "description": "Any part of the human body, typically a component of an anatomical system. Organs, tissues, and cells are all anatomical structures.", + "$ref": "schema:AnatomicalStructure" + } + ], + "properties": { + "branch": { + "description": "The branches that delineate from the nerve bundle. Not to be confused with [[branchOf]].", + "$ref": "schema:AnatomicalStructure" + }, + "nerveMotor": { + "description": "The neurological pathway extension that involves muscle control.", + "$ref": "schema:Muscle" + }, + "sensoryUnit": { + "description": "The neurological pathway extension that inputs and sends information to the brain or spinal cord.", + "anyOf": [ + { "$ref": "schema:AnatomicalStructure" }, + { "$ref": "schema:SuperficialAnatomy" } + ] + }, + "sourcedFrom": { + "description": "The neurological pathway that originates the neurons.", + "$ref": "schema:BrainStructure" + } + } +} diff --git a/registry/schema-org/NewsArticle.schema.json b/registry/schema-org/NewsArticle.schema.json new file mode 100644 index 0000000..d82e73d --- /dev/null +++ b/registry/schema-org/NewsArticle.schema.json @@ -0,0 +1,35 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:NewsArticle", + "title": "NewsArticle", + "description": "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.\n", + "type": "object", + "allOf": [ + { + "description": "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).", + "$ref": "schema:Article" + } + ], + "properties": { + "dateline": { + "description": "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.\n\nStructured 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]].\n\nDateline 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\".\n ", + "type": "string" + }, + "printColumn": { + "description": "The number of the column in which the NewsArticle appears in the print edition.", + "type": "string" + }, + "printEdition": { + "description": "The edition of the print product in which the NewsArticle appears.", + "type": "string" + }, + "printPage": { + "description": "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).", + "type": "string" + }, + "printSection": { + "description": "If this NewsArticle appears in print, this field indicates the print section in which the article appeared.", + "type": "string" + } + } +} diff --git a/registry/schema-org/NewsMediaOrganization.schema.json b/registry/schema-org/NewsMediaOrganization.schema.json new file mode 100644 index 0000000..138e77b --- /dev/null +++ b/registry/schema-org/NewsMediaOrganization.schema.json @@ -0,0 +1,239 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:NewsMediaOrganization", + "title": "NewsMediaOrganization", + "description": "A News/Media organization such as a newspaper or TV station.", + "type": "object", + "allOf": [ + { + "description": "An organization such as a school, NGO, corporation, club, etc.", + "$ref": "schema:Organization" + } + ], + "properties": { + "actionableFeedbackPolicy": { + "description": "For a [[NewsMediaOrganization]] or other news-related [[Organization]], a statement about public engagement activities (for news media, the newsroom’s), including involving the public - digitally or otherwise -- in coverage decisions, reporting and activities after publication.", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:CreativeWork" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:CreativeWork" } + ] + } + } + ] + }, + "correctionsPolicy": { + "description": "For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:CreativeWork" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:CreativeWork" } + ] + } + } + ] + }, + "diversityPolicy": { + "description": "Statement on diversity policy by an [[Organization]] e.g. a [[NewsMediaOrganization]]. For a [[NewsMediaOrganization]], a statement describing the newsroom’s diversity policy on both staffing and sources, typically providing staffing data.", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:CreativeWork" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:CreativeWork" } + ] + } + } + ] + }, + "diversityStaffingReport": { + "description": "For an [[Organization]] (often but not necessarily a [[NewsMediaOrganization]]), a report on staffing diversity issues. In a news context this might be for example ASNE or RTDNA (US) reports, or self-reported.", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:Article" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:Article" } + ] + } + } + ] + }, + "ethicsPolicy": { + "description": "Statement about ethics policy, e.g. of a [[NewsMediaOrganization]] regarding journalistic and publishing practices, or of a [[Restaurant]], a page describing food source policies. In the case of a [[NewsMediaOrganization]], an ethicsPolicy is typically a statement describing the personal, organizational, and corporate standards of behavior expected by the organization.", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:CreativeWork" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:CreativeWork" } + ] + } + } + ] + }, + "masthead": { + "description": "For a [[NewsMediaOrganization]], a link to the masthead page or a page listing top editorial management.", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:CreativeWork" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:CreativeWork" } + ] + } + } + ] + }, + "missionCoveragePrioritiesPolicy": { + "description": "For a [[NewsMediaOrganization]], a statement on coverage priorities, including any public agenda or stance on issues.", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:CreativeWork" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:CreativeWork" } + ] + } + } + ] + }, + "noBylinesPolicy": { + "description": "For a [[NewsMediaOrganization]] or other news-related [[Organization]], a statement explaining when authors of articles are not named in bylines.", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:CreativeWork" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:CreativeWork" } + ] + } + } + ] + }, + "ownershipFundingInfo": { + "description": "For an [[Organization]] (often but not necessarily a [[NewsMediaOrganization]]), a description of organizational ownership structure; funding and grants. In a news/media setting, this is with particular reference to editorial independence. Note that the [[funder]] is also available and can be used to make basic funder information machine-readable.", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:AboutPage" }, + { "$ref": "schema:CreativeWork" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:AboutPage" }, + { "$ref": "schema:CreativeWork" } + ] + } + } + ] + }, + "unnamedSourcesPolicy": { + "description": "For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:CreativeWork" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:CreativeWork" } + ] + } + } + ] + }, + "verificationFactCheckingPolicy": { + "description": "Disclosure about verification and fact-checking processes for a [[NewsMediaOrganization]] or other fact-checking [[Organization]].", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:CreativeWork" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:CreativeWork" } + ] + } + } + ] + } + } +} diff --git a/registry/schema-org/Newspaper.schema.json b/registry/schema-org/Newspaper.schema.json new file mode 100644 index 0000000..7784336 --- /dev/null +++ b/registry/schema-org/Newspaper.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Newspaper", + "title": "Newspaper", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "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).", + "$ref": "schema:Periodical" + } + ] +} diff --git a/registry/schema-org/NightClub.schema.json b/registry/schema-org/NightClub.schema.json new file mode 100644 index 0000000..6a2614c --- /dev/null +++ b/registry/schema-org/NightClub.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:NightClub", + "title": "NightClub", + "description": "A nightclub or discotheque.", + "type": "object", + "allOf": [ + { + "description": "A business providing entertainment.", + "$ref": "schema:EntertainmentBusiness" + } + ] +} diff --git a/registry/schema-org/NonprofitType.schema.json b/registry/schema-org/NonprofitType.schema.json new file mode 100644 index 0000000..da7c390 --- /dev/null +++ b/registry/schema-org/NonprofitType.schema.json @@ -0,0 +1,7 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:NonprofitType", + "title": "NonprofitType", + "description": "NonprofitType enumerates several kinds of official non-profit types of which a non-profit organization can be.", + "type": "object" +} diff --git a/registry/schema-org/Notary.schema.json b/registry/schema-org/Notary.schema.json new file mode 100644 index 0000000..c865576 --- /dev/null +++ b/registry/schema-org/Notary.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Notary", + "title": "Notary", + "description": "A notary.", + "type": "object", + "allOf": [ + { + "description": "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).", + "$ref": "schema:LegalService" + } + ] +} diff --git a/registry/schema-org/NoteDigitalDocument.schema.json b/registry/schema-org/NoteDigitalDocument.schema.json new file mode 100644 index 0000000..bf0355e --- /dev/null +++ b/registry/schema-org/NoteDigitalDocument.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:NoteDigitalDocument", + "title": "NoteDigitalDocument", + "description": "A file containing a note, primarily for the author.", + "type": "object", + "allOf": [ + { + "description": "An electronic file or document.", + "$ref": "schema:DigitalDocument" + } + ] +} diff --git a/registry/schema-org/NutritionInformation.schema.json b/registry/schema-org/NutritionInformation.schema.json new file mode 100644 index 0000000..bcbdbb1 --- /dev/null +++ b/registry/schema-org/NutritionInformation.schema.json @@ -0,0 +1,74 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:NutritionInformation", + "title": "NutritionInformation", + "description": "Nutritional information about the recipe.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:StructuredValue" + } + ], + "properties": { + "calories": { + "description": "The number of calories.", + "type": "string", + "$comment": "https://schema.org/Energy" + }, + "carbohydrateContent": { + "description": "The number of grams of carbohydrates.", + "type": "string", + "$comment": "https://schema.org/Mass" + }, + "cholesterolContent": { + "description": "The number of milligrams of cholesterol.", + "type": "string", + "$comment": "https://schema.org/Mass" + }, + "fatContent": { + "description": "The number of grams of fat.", + "type": "string", + "$comment": "https://schema.org/Mass" + }, + "fiberContent": { + "description": "The number of grams of fiber.", + "type": "string", + "$comment": "https://schema.org/Mass" + }, + "proteinContent": { + "description": "The number of grams of protein.", + "type": "string", + "$comment": "https://schema.org/Mass" + }, + "saturatedFatContent": { + "description": "The number of grams of saturated fat.", + "type": "string", + "$comment": "https://schema.org/Mass" + }, + "servingSize": { + "description": "The serving size, in terms of the number of volume or mass.", + "type": "string" + }, + "sodiumContent": { + "description": "The number of milligrams of sodium.", + "type": "string", + "$comment": "https://schema.org/Mass" + }, + "sugarContent": { + "description": "The number of grams of sugar.", + "type": "string", + "$comment": "https://schema.org/Mass" + }, + "transFatContent": { + "description": "The number of grams of trans fat.", + "type": "string", + "$comment": "https://schema.org/Mass" + }, + "unsaturatedFatContent": { + "description": "The number of grams of unsaturated fat.", + "type": "string", + "$comment": "https://schema.org/Mass" + } + } +} diff --git a/registry/schema-org/Observation.schema.json b/registry/schema-org/Observation.schema.json new file mode 100644 index 0000000..00e5201 --- /dev/null +++ b/registry/schema-org/Observation.schema.json @@ -0,0 +1,114 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Observation", + "title": "Observation", + "description": "Instances of the class [[Observation]] are used to specify observations about an entity at a particular time. The principal properties of an [[Observation]] are [[observationAbout]], [[measuredProperty]], [[statType]], [[value] and [[observationDate]] and [[measuredProperty]]. Some but not all Observations represent a [[QuantitativeValue]]. Quantitative observations can be about a [[StatisticalVariable]], which is an abstract specification about which we can make observations that are grounded at a particular location and time.\n\nObservations can also encode a subset of simple RDF-like statements (its observationAbout, a StatisticalVariable, defining the measuredPoperty; its observationAbout property indicating the entity the statement is about, and [[value]] )\n\nIn the context of a quantitative knowledge graph, typical properties could include [[measuredProperty]], [[observationAbout]], [[observationDate]], [[value]], [[unitCode]], [[unitText]], [[measurementMethod]].\n ", + "type": "object", + "allOf": [ + { + "description": "A utility class that serves as the umbrella for a number of 'intangible' things such as quantities, structured values, etc.", + "$ref": "schema:Intangible" + }, + { + "description": "A point value or interval for product characteristics and other purposes.", + "$ref": "schema:QuantitativeValue" + } + ], + "properties": { + "marginOfError": { + "description": "A [[marginOfError]] for an [[Observation]].", + "oneOf": [ + { "$ref": "schema:QuantitativeValue" }, + { "type": "array", "items": { "$ref": "schema:QuantitativeValue" } } + ] + }, + "measuredProperty": { + "description": "The measuredProperty of an [[Observation]], typically via its [[StatisticalVariable]]. There are various kinds of applicable [[Property]]: a schema.org property, a property from other RDF-compatible systems, e.g. W3C RDF Data Cube, Data Commons, Wikidata, or schema.org extensions such as [GS1's](https://www.gs1.org/voc/?show=properties).", + "$ref": "schema:Property" + }, + "measurementDenominator": { + "description": "Identifies the denominator variable when an observation represents a ratio or percentage.", + "oneOf": [ + { "$ref": "schema:StatisticalVariable" }, + { "type": "array", "items": { "$ref": "schema:StatisticalVariable" } } + ] + }, + "measurementMethod": { + "description": "A subproperty of [[measurementTechnique]] that can be used for specifying specific methods, in particular via [[MeasurementMethodEnum]].", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:DefinedTerm" }, + { "$ref": "schema:MeasurementMethodEnum" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:DefinedTerm" }, + { "$ref": "schema:MeasurementMethodEnum" } + ] + } + } + ] + }, + "measurementQualifier": { + "description": "Provides additional qualification to an observation. For example, a GDP observation measures the Nominal value.", + "oneOf": [ + { "$ref": "schema:Enumeration" }, + { "type": "array", "items": { "$ref": "schema:Enumeration" } } + ] + }, + "measurementTechnique": { + "description": "A technique, method or technology used in an [[Observation]], [[StatisticalVariable]] or [[Dataset]] (or [[DataDownload]], [[DataCatalog]]), corresponding to the method used for measuring the corresponding variable(s) (for datasets, described using [[variableMeasured]]; for [[Observation]], a [[StatisticalVariable]]). Often but not necessarily each [[variableMeasured]] will have an explicit representation as (or mapping to) an property such as those defined in Schema.org, or other RDF vocabularies and \"knowledge graphs\". In that case the subproperty of [[variableMeasured]] called [[measuredProperty]] is applicable.\n \nThe [[measurementTechnique]] property helps when extra clarification is needed about how a [[measuredProperty]] was measured. 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 can often serve as a high level summary for dataset discovery. \n\nFor 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\". \n\nIf there are several [[variableMeasured]] properties recorded for some given data object, use a [[PropertyValue]] for each [[variableMeasured]] and attach the corresponding [[measurementTechnique]]. The value can also be from an enumeration, organized as a [[MeasurementMetholdEnumeration]].", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:DefinedTerm" }, + { "$ref": "schema:MeasurementMethodEnum" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:DefinedTerm" }, + { "$ref": "schema:MeasurementMethodEnum" } + ] + } + } + ] + }, + "observationAbout": { + "description": "The [[observationAbout]] property identifies an entity, often a [[Place]], associated with an [[Observation]].", + "anyOf": [{ "$ref": "schema:Place" }, { "$ref": "schema:Thing" }] + }, + "observationDate": { + "description": "The observationDate of an [[Observation]].", + "type": "string", + "format": "date-time" + }, + "observationPeriod": { + "description": "The length of time an Observation took place over. The format follows `P[0-9]*[Y|M|D|h|m|s]`. For example, P1Y is Period 1 Year, P3M is Period 3 Months, P3h is Period 3 hours.", + "type": "string" + }, + "variableMeasured": { + "description": "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, or more explicitly as a [[StatisticalVariable]].", + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:Property" }, + { "$ref": "schema:PropertyValue" }, + { "$ref": "schema:StatisticalVariable" } + ] + } + } +} diff --git a/registry/schema-org/Occupation.schema.json b/registry/schema-org/Occupation.schema.json new file mode 100644 index 0000000..634858f --- /dev/null +++ b/registry/schema-org/Occupation.schema.json @@ -0,0 +1,106 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Occupation", + "title": "Occupation", + "description": "A profession, may involve prolonged training and/or a formal qualification.", + "type": "object", + "allOf": [ + { + "description": "A utility class that serves as the umbrella for a number of 'intangible' things such as quantities, structured values, etc.", + "$ref": "schema:Intangible" + } + ], + "properties": { + "educationRequirements": { + "description": "Educational background needed for the position or Occupation.", + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:EducationalOccupationalCredential" } + ] + }, + "estimatedSalary": { + "description": "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.", + "oneOf": [ + { + "anyOf": [ + { "type": "number" }, + { "$ref": "schema:MonetaryAmount" }, + { "$ref": "schema:MonetaryAmountDistribution" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "number" }, + { "$ref": "schema:MonetaryAmount" }, + { "$ref": "schema:MonetaryAmountDistribution" } + ] + } + } + ] + }, + "experienceRequirements": { + "description": "Description of skills and experience needed for the position or Occupation.", + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:OccupationalExperienceRequirements" } + ] + }, + "occupationLocation": { + "description": "The region/country for which this occupational description is appropriate. Note that educational requirements and qualifications can vary between jurisdictions.", + "$ref": "schema:AdministrativeArea" + }, + "occupationalCategory": { + "description": "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.\\n\nNote: for historical reasons, any textual label and formal code provided as a literal may be assumed to be from O*NET-SOC.", + "oneOf": [ + { "anyOf": [{ "type": "string" }, { "$ref": "schema:CategoryCode" }] }, + { + "type": "array", + "items": { + "anyOf": [{ "type": "string" }, { "$ref": "schema:CategoryCode" }] + } + } + ] + }, + "qualifications": { + "description": "Specific qualifications required for this role or Occupation.", + "oneOf": [ + { + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:EducationalOccupationalCredential" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:EducationalOccupationalCredential" } + ] + } + } + ] + }, + "responsibilities": { + "description": "Responsibilities associated with this role or Occupation.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "skills": { + "description": "A statement of knowledge, skill, ability, task or any other assertion expressing a competency that is either claimed by a person, an organization or desired or required to fulfill a role or to work in an occupation.", + "oneOf": [ + { "anyOf": [{ "type": "string" }, { "$ref": "schema:DefinedTerm" }] }, + { + "type": "array", + "items": { + "anyOf": [{ "type": "string" }, { "$ref": "schema:DefinedTerm" }] + } + } + ] + } + } +} diff --git a/registry/schema-org/OccupationalExperienceRequirements.schema.json b/registry/schema-org/OccupationalExperienceRequirements.schema.json new file mode 100644 index 0000000..c0a1725 --- /dev/null +++ b/registry/schema-org/OccupationalExperienceRequirements.schema.json @@ -0,0 +1,22 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:OccupationalExperienceRequirements", + "title": "OccupationalExperienceRequirements", + "description": "Indicates employment-related experience requirements, e.g. [[monthsOfExperience]].", + "type": "object", + "allOf": [ + { + "description": "A utility class that serves as the umbrella for a number of 'intangible' things such as quantities, structured values, etc.", + "$ref": "schema:Intangible" + } + ], + "properties": { + "monthsOfExperience": { + "description": "Indicates the minimal number of months of experience required for a position.", + "oneOf": [ + { "type": "number" }, + { "type": "array", "items": { "type": "number" } } + ] + } + } +} diff --git a/registry/schema-org/OccupationalTherapy.schema.json b/registry/schema-org/OccupationalTherapy.schema.json new file mode 100644 index 0000000..5eecafe --- /dev/null +++ b/registry/schema-org/OccupationalTherapy.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:OccupationalTherapy", + "title": "OccupationalTherapy", + "description": "A treatment of people with physical, emotional, or social problems, using purposeful activity to help them overcome or learn to deal with their problems.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:MedicalTherapy" + } + ] +} diff --git a/registry/schema-org/OceanBodyOfWater.schema.json b/registry/schema-org/OceanBodyOfWater.schema.json new file mode 100644 index 0000000..5410e5b --- /dev/null +++ b/registry/schema-org/OceanBodyOfWater.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:OceanBodyOfWater", + "title": "OceanBodyOfWater", + "description": "An ocean (for example, the Pacific).", + "type": "object", + "allOf": [ + { + "description": "A body of water, such as a sea, ocean, or lake.", + "$ref": "schema:BodyOfWater" + } + ] +} diff --git a/registry/schema-org/Offer.schema.json b/registry/schema-org/Offer.schema.json new file mode 100644 index 0000000..af6fb0d --- /dev/null +++ b/registry/schema-org/Offer.schema.json @@ -0,0 +1,391 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Offer", + "title": "Offer", + "description": "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/).", + "type": "object", + "allOf": [ + { + "description": "A utility class that serves as the umbrella for a number of 'intangible' things such as quantities, structured values, etc.", + "$ref": "schema:Intangible" + } + ], + "properties": { + "acceptedPaymentMethod": { + "description": "The payment method(s) that are accepted in general by an organization, or for some specific demand or offer.", + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:LoanOrCredit" }, + { "$ref": "schema:PaymentMethod" } + ] + }, + "addOn": { + "description": "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).", + "oneOf": [ + { "$ref": "schema:Offer" }, + { "type": "array", "items": { "$ref": "schema:Offer" } } + ] + }, + "additionalProperty": { + "description": "A property-value pair representing an additional characteristic of the entity, e.g. a product feature or another characteristic for which there is no matching property in schema.org.\\n\\nNote: Publishers should be aware that applications designed to use specific schema.org properties (e.g. https://schema.org/width, https://schema.org/color, https://schema.org/gtin13, ...) will typically expect such data to be provided using those properties, rather than using the generic property/value mechanism.\n", + "oneOf": [ + { "$ref": "schema:PropertyValue" }, + { "type": "array", "items": { "$ref": "schema:PropertyValue" } } + ] + }, + "advanceBookingRequirement": { + "description": "The amount of time that is required between accepting the offer and the actual usage of the resource or service.", + "$ref": "schema:QuantitativeValue" + }, + "aggregateRating": { + "description": "The overall rating, based on a collection of reviews or ratings, of the item.", + "$ref": "schema:AggregateRating" + }, + "areaServed": { + "description": "The geographic area where a service or offered item is provided.", + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:AdministrativeArea" }, + { "$ref": "schema:GeoShape" }, + { "$ref": "schema:Place" } + ] + }, + "asin": { + "description": "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).\n\nNote 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.\nASINs are most commonly encoded as text strings, but the [asin] property supports URL/URI as potential values too.", + "oneOf": [ + { + "anyOf": [{ "type": "string", "format": "uri" }, { "type": "string" }] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" } + ] + } + } + ] + }, + "availability": { + "description": "The availability of this item—for example In stock, Out of stock, Pre-order, etc.", + "$ref": "schema:ItemAvailability" + }, + "availabilityEnds": { + "description": "The end of the availability of the product or service included in the offer.", + "anyOf": [ + { "type": "string", "format": "date" }, + { "type": "string", "format": "date-time" }, + { "type": "string", "format": "time" } + ] + }, + "availabilityStarts": { + "description": "The beginning of the availability of the product or service included in the offer.", + "anyOf": [ + { "type": "string", "format": "date" }, + { "type": "string", "format": "date-time" }, + { "type": "string", "format": "time" } + ] + }, + "availableAtOrFrom": { + "description": "The place(s) from which the offer can be obtained (e.g. store locations).", + "$ref": "schema:Place" + }, + "availableDeliveryMethod": { + "description": "The delivery method(s) available for this offer.", + "$ref": "schema:DeliveryMethod" + }, + "businessFunction": { + "description": "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.", + "$ref": "schema:BusinessFunction" + }, + "category": { + "description": "A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:CategoryCode" }, + { "$ref": "schema:PhysicalActivityCategory" }, + { "$ref": "schema:Thing" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:CategoryCode" }, + { "$ref": "schema:PhysicalActivityCategory" }, + { "$ref": "schema:Thing" } + ] + } + } + ] + }, + "checkoutPageURLTemplate": { + "description": "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.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "deliveryLeadTime": { + "description": "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.", + "$ref": "schema:QuantitativeValue" + }, + "eligibleCustomerType": { + "description": "The type(s) of customers for which the given offer is valid.", + "$ref": "schema:BusinessEntityType" + }, + "eligibleDuration": { + "description": "The duration for which the given offer is valid.", + "$ref": "schema:QuantitativeValue" + }, + "eligibleQuantity": { + "description": "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.", + "$ref": "schema:QuantitativeValue" + }, + "eligibleRegion": { + "description": "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.\\n\\nSee also [[ineligibleRegion]].\n ", + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:GeoShape" }, + { "$ref": "schema:Place" } + ] + }, + "eligibleTransactionVolume": { + "description": "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.", + "$ref": "schema:PriceSpecification" + }, + "gtin": { + "description": "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.\n\nA 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.\n\nThe GS1 [digital link specifications](https://www.gs1.org/standards/Digital-Link/) expresses GTINs as URLs (URIs, IRIs, etc.).\nDigital Links should be populated into the [[hasGS1DigitalLink]] attribute.\n\nNote 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.", + "oneOf": [ + { + "anyOf": [{ "type": "string", "format": "uri" }, { "type": "string" }] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" } + ] + } + } + ] + }, + "gtin12": { + "description": "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.", + "type": "string" + }, + "gtin13": { + "description": "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.", + "type": "string" + }, + "gtin14": { + "description": "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.", + "type": "string" + }, + "gtin8": { + "description": "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.", + "type": "string" + }, + "hasAdultConsideration": { + "description": "Used to tag an item to be intended or suitable for consumption or use by adults only.", + "oneOf": [ + { "$ref": "schema:AdultOrientedEnumeration" }, + { + "type": "array", + "items": { "$ref": "schema:AdultOrientedEnumeration" } + } + ] + }, + "hasGS1DigitalLink": { + "description": "The GS1 digital link associated with the object. This URL should conform to the particular requirements of digital links. The link should only contain the Application Identifiers (AIs) that are relevant for the entity being annotated, for instance a [[Product]] or an [[Organization]], and for the correct granularity. In particular, for products:A Digital Link that contains a serial number (AI 21) should only be present on instances of [[IndividualProduct]]A Digital Link that contains a lot number (AI 10) should be annotated as [[SomeProduct]] if only products from that lot are sold, or [[IndividualProduct]] if there is only a specific product.A Digital Link that contains a global model number (AI 8013) should be attached to a [[Product]] or a [[ProductModel]]. Other item types should be adapted similarly.", + "type": "string", + "format": "uri" + }, + "hasMeasurement": { + "description": "A measurement of an item, For example, the inseam of pants, the wheel size of a bicycle, the gauge of a screw, or the carbon footprint measured for certification by an authority. Usually an exact measurement, but can also be a range of measurements for adjustable products, for example belts and ski bindings.", + "oneOf": [ + { "$ref": "schema:QuantitativeValue" }, + { "type": "array", "items": { "$ref": "schema:QuantitativeValue" } } + ] + }, + "hasMerchantReturnPolicy": { + "description": "Specifies a MerchantReturnPolicy that may be applicable.", + "oneOf": [ + { "$ref": "schema:MerchantReturnPolicy" }, + { "type": "array", "items": { "$ref": "schema:MerchantReturnPolicy" } } + ] + }, + "includesObject": { + "description": "This links to a node or nodes indicating the exact quantity of the products included in an [[Offer]] or [[ProductCollection]].", + "oneOf": [ + { "$ref": "schema:TypeAndQuantityNode" }, + { "type": "array", "items": { "$ref": "schema:TypeAndQuantityNode" } } + ] + }, + "ineligibleRegion": { + "description": "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.\\n\\nSee also [[eligibleRegion]].\n ", + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:GeoShape" }, + { "$ref": "schema:Place" } + ] + }, + "inventoryLevel": { + "description": "The current approximate inventory level for the item or items.", + "$ref": "schema:QuantitativeValue" + }, + "isFamilyFriendly": { + "description": "Indicates whether this content is family friendly.", + "type": "boolean" + }, + "itemCondition": { + "description": "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.", + "oneOf": [ + { "$ref": "schema:OfferItemCondition" }, + { "type": "array", "items": { "$ref": "schema:OfferItemCondition" } } + ] + }, + "itemOffered": { + "description": "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.", + "anyOf": [ + { "$ref": "schema:AggregateOffer" }, + { "$ref": "schema:CreativeWork" }, + { "$ref": "schema:Event" }, + { "$ref": "schema:MenuItem" }, + { "$ref": "schema:Product" }, + { "$ref": "schema:Service" }, + { "$ref": "schema:Trip" } + ] + }, + "leaseLength": { + "description": "Length of the lease for some [[Accommodation]], either particular to some [[Offer]] or in some cases intrinsic to the property.", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "$comment": "https://schema.org/Duration" }, + { "$ref": "schema:QuantitativeValue" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "$comment": "https://schema.org/Duration" }, + { "$ref": "schema:QuantitativeValue" } + ] + } + } + ] + }, + "mobileUrl": { + "description": "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'.\n\nTo 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.\n ", + "type": "string" + }, + "mpn": { + "description": "The Manufacturer Part Number (MPN) of the product, or the product to which the offer refers.", + "type": "string" + }, + "offeredBy": { + "description": "A pointer to the organization or person making the offer.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + } + } + ] + }, + "price": { + "description": "The offer price of a product, or of a price component when attached to PriceSpecification and its subtypes.\\n\\nUsage guidelines:\\n\\n* 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.\\n* Use '.' (Unicode 'FULL STOP' (U+002E)) rather than ',' to indicate a decimal point. Avoid using these symbols as a readability separator.\\n* 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.\\n* Use values from 0123456789 (Unicode 'DIGIT ZERO' (U+0030) to 'DIGIT NINE' (U+0039)) rather than superficially similar Unicode symbols.\n ", + "anyOf": [{ "type": "number" }, { "type": "string" }] + }, + "priceCurrency": { + "description": "The currency of the price, or a price component when attached to [[PriceSpecification]] and its subtypes.\\n\\nUse standard formats: [ISO 4217 currency format](http://en.wikipedia.org/wiki/ISO_4217), e.g. \"USD\"; [Ticker symbol](https://en.wikipedia.org/wiki/List_of_cryptocurrencies) for cryptocurrencies, e.g. \"BTC\"; well known names for [Local Exchange Trading Systems](https://en.wikipedia.org/wiki/Local_exchange_trading_system) (LETS) and other currency types, e.g. \"Ithaca HOUR\".", + "type": "string" + }, + "priceSpecification": { + "description": "One or more detailed price specifications, indicating the unit price and delivery or payment charges.", + "oneOf": [ + { "$ref": "schema:PriceSpecification" }, + { "type": "array", "items": { "$ref": "schema:PriceSpecification" } } + ] + }, + "priceValidUntil": { + "description": "The date after which the price is no longer available.", + "type": "string", + "format": "date" + }, + "review": { + "description": "A review of the item.", + "oneOf": [ + { "$ref": "schema:Review" }, + { "type": "array", "items": { "$ref": "schema:Review" } } + ] + }, + "reviews": { + "description": "Review of the item.", + "oneOf": [ + { "$ref": "schema:Review" }, + { "type": "array", "items": { "$ref": "schema:Review" } } + ] + }, + "seller": { + "description": "An entity which offers (sells / leases / lends / loans) the services / goods. A seller may also be a provider.", + "anyOf": [{ "$ref": "schema:Organization" }, { "$ref": "schema:Person" }] + }, + "serialNumber": { + "description": "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.", + "type": "string" + }, + "shippingDetails": { + "description": "Indicates information about the shipping policies and options associated with an [[Offer]].", + "oneOf": [ + { "$ref": "schema:OfferShippingDetails" }, + { "type": "array", "items": { "$ref": "schema:OfferShippingDetails" } } + ] + }, + "sku": { + "description": "The Stock Keeping Unit (SKU), i.e. a merchant-specific identifier for a product or service, or the product to which the offer refers.", + "type": "string" + }, + "validForMemberTier": { + "description": "The membership program tier an Offer (or a PriceSpecification, OfferShippingDetails, or MerchantReturnPolicy under an Offer) is valid for.", + "$ref": "schema:MemberProgramTier" + }, + "validFrom": { + "description": "The date when the item becomes valid.", + "anyOf": [ + { "type": "string", "format": "date" }, + { "type": "string", "format": "date-time" } + ] + }, + "validThrough": { + "description": "The date after when the item is not valid. For example the end of an offer, salary period, or a period of opening hours.", + "anyOf": [ + { "type": "string", "format": "date" }, + { "type": "string", "format": "date-time" } + ] + }, + "warranty": { + "description": "The warranty promise(s) included in the offer.", + "$ref": "schema:WarrantyPromise" + } + } +} diff --git a/registry/schema-org/OfferCatalog.schema.json b/registry/schema-org/OfferCatalog.schema.json new file mode 100644 index 0000000..8e69048 --- /dev/null +++ b/registry/schema-org/OfferCatalog.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:OfferCatalog", + "title": "OfferCatalog", + "description": "An OfferCatalog is an ItemList that contains related Offers and/or further OfferCatalogs that are offeredBy the same provider.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:ItemList" + } + ] +} diff --git a/registry/schema-org/OfferForLease.schema.json b/registry/schema-org/OfferForLease.schema.json new file mode 100644 index 0000000..881e5e2 --- /dev/null +++ b/registry/schema-org/OfferForLease.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:OfferForLease", + "title": "OfferForLease", + "description": "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 ", + "type": "object", + "allOf": [ + { + "description": "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/).", + "$ref": "schema:Offer" + } + ] +} diff --git a/registry/schema-org/OfferForPurchase.schema.json b/registry/schema-org/OfferForPurchase.schema.json new file mode 100644 index 0000000..15c1d92 --- /dev/null +++ b/registry/schema-org/OfferForPurchase.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:OfferForPurchase", + "title": "OfferForPurchase", + "description": "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 ", + "type": "object", + "allOf": [ + { + "description": "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/).", + "$ref": "schema:Offer" + } + ] +} diff --git a/registry/schema-org/OfferItemCondition.schema.json b/registry/schema-org/OfferItemCondition.schema.json new file mode 100644 index 0000000..fc91692 --- /dev/null +++ b/registry/schema-org/OfferItemCondition.schema.json @@ -0,0 +1,25 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:OfferItemCondition", + "title": "OfferItemCondition", + "description": "A list of possible conditions for the item.", + "type": "string", + "oneOf": [ + { + "description": "Indicates that the item is damaged.", + "const": "DamagedCondition" + }, + { + "description": "Indicates that the item is new.", + "const": "NewCondition" + }, + { + "description": "Indicates that the item is refurbished.", + "const": "RefurbishedCondition" + }, + { + "description": "Indicates that the item is used.", + "const": "UsedCondition" + } + ] +} diff --git a/registry/schema-org/OfferShippingDetails.schema.json b/registry/schema-org/OfferShippingDetails.schema.json new file mode 100644 index 0000000..86157fc --- /dev/null +++ b/registry/schema-org/OfferShippingDetails.schema.json @@ -0,0 +1,83 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:OfferShippingDetails", + "title": "OfferShippingDetails", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:StructuredValue" + } + ], + "properties": { + "deliveryTime": { + "description": "The total delay between the receipt of the order and the goods reaching the final customer.", + "$ref": "schema:ShippingDeliveryTime" + }, + "depth": { + "description": "The depth of the item.", + "anyOf": [ + { "type": "string", "$comment": "https://schema.org/Distance" }, + { "$ref": "schema:QuantitativeValue" } + ] + }, + "doesNotShip": { + "description": "Indicates when shipping to a particular [[shippingDestination]] is not available.", + "type": "boolean" + }, + "hasShippingService": { + "description": "Specification of a shipping service offered by the organization.", + "oneOf": [ + { "$ref": "schema:ShippingService" }, + { "type": "array", "items": { "$ref": "schema:ShippingService" } } + ] + }, + "height": { + "description": "The height of the item.", + "anyOf": [ + { "type": "string", "$comment": "https://schema.org/Distance" }, + { "$ref": "schema:QuantitativeValue" } + ] + }, + "shippingDestination": { + "description": "indicates (possibly multiple) shipping destinations. These can be defined in several ways, e.g. postalCode ranges.", + "oneOf": [ + { "$ref": "schema:DefinedRegion" }, + { "type": "array", "items": { "$ref": "schema:DefinedRegion" } } + ] + }, + "shippingOrigin": { + "description": "Indicates the origin of a shipment, i.e. where it should be coming from.", + "oneOf": [ + { "$ref": "schema:DefinedRegion" }, + { "type": "array", "items": { "$ref": "schema:DefinedRegion" } } + ] + }, + "shippingRate": { + "description": "The shipping rate is the cost of shipping to the specified destination. Typically, the maxValue and currency values (of the [[MonetaryAmount]]) are most appropriate.", + "anyOf": [ + { "$ref": "schema:MonetaryAmount" }, + { "$ref": "schema:ShippingRateSettings" } + ] + }, + "validForMemberTier": { + "description": "The membership program tier an Offer (or a PriceSpecification, OfferShippingDetails, or MerchantReturnPolicy under an Offer) is valid for.", + "$ref": "schema:MemberProgramTier" + }, + "weight": { + "description": "The weight of the product or person.", + "anyOf": [ + { "type": "string", "$comment": "https://schema.org/Mass" }, + { "$ref": "schema:QuantitativeValue" } + ] + }, + "width": { + "description": "The width of the item.", + "anyOf": [ + { "type": "string", "$comment": "https://schema.org/Distance" }, + { "$ref": "schema:QuantitativeValue" } + ] + } + } +} diff --git a/registry/schema-org/OfficeEquipmentStore.schema.json b/registry/schema-org/OfficeEquipmentStore.schema.json new file mode 100644 index 0000000..62cc95c --- /dev/null +++ b/registry/schema-org/OfficeEquipmentStore.schema.json @@ -0,0 +1,8 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:OfficeEquipmentStore", + "title": "OfficeEquipmentStore", + "description": "An office equipment store.", + "type": "object", + "allOf": [{ "description": "A retail good store.", "$ref": "schema:Store" }] +} diff --git a/registry/schema-org/OnDemandEvent.schema.json b/registry/schema-org/OnDemandEvent.schema.json new file mode 100644 index 0000000..104390a --- /dev/null +++ b/registry/schema-org/OnDemandEvent.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:OnDemandEvent", + "title": "OnDemandEvent", + "description": "A publication event, e.g. catch-up TV or radio podcast, during which a program is available on-demand.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:PublicationEvent" + } + ] +} diff --git a/registry/schema-org/OnlineBusiness.schema.json b/registry/schema-org/OnlineBusiness.schema.json new file mode 100644 index 0000000..19c5f6b --- /dev/null +++ b/registry/schema-org/OnlineBusiness.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:OnlineBusiness", + "title": "OnlineBusiness", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "An organization such as a school, NGO, corporation, club, etc.", + "$ref": "schema:Organization" + } + ] +} diff --git a/registry/schema-org/OnlineStore.schema.json b/registry/schema-org/OnlineStore.schema.json new file mode 100644 index 0000000..a86f575 --- /dev/null +++ b/registry/schema-org/OnlineStore.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:OnlineStore", + "title": "OnlineStore", + "description": "An eCommerce site.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:OnlineBusiness" + } + ] +} diff --git a/registry/schema-org/OpeningHoursSpecification.schema.json b/registry/schema-org/OpeningHoursSpecification.schema.json new file mode 100644 index 0000000..906e688 --- /dev/null +++ b/registry/schema-org/OpeningHoursSpecification.schema.json @@ -0,0 +1,43 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:OpeningHoursSpecification", + "title": "OpeningHoursSpecification", + "description": "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 ", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:StructuredValue" + } + ], + "properties": { + "closes": { + "description": "The closing hour of the place or service on the given day(s) of the week.", + "type": "string", + "format": "time" + }, + "dayOfWeek": { + "description": "The day of the week for which these opening hours are valid.", + "$ref": "schema:DayOfWeek" + }, + "opens": { + "description": "The opening hour of the place or service on the given day(s) of the week.", + "type": "string", + "format": "time" + }, + "validFrom": { + "description": "The date when the item becomes valid.", + "anyOf": [ + { "type": "string", "format": "date" }, + { "type": "string", "format": "date-time" } + ] + }, + "validThrough": { + "description": "The date after when the item is not valid. For example the end of an offer, salary period, or a period of opening hours.", + "anyOf": [ + { "type": "string", "format": "date" }, + { "type": "string", "format": "date-time" } + ] + } + } +} diff --git a/registry/schema-org/OpinionNewsArticle.schema.json b/registry/schema-org/OpinionNewsArticle.schema.json new file mode 100644 index 0000000..17ff946 --- /dev/null +++ b/registry/schema-org/OpinionNewsArticle.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:OpinionNewsArticle", + "title": "OpinionNewsArticle", + "description": "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. ", + "type": "object", + "allOf": [ + { + "description": "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.\n", + "$ref": "schema:NewsArticle" + } + ] +} diff --git a/registry/schema-org/Optician.schema.json b/registry/schema-org/Optician.schema.json new file mode 100644 index 0000000..bd5d1ac --- /dev/null +++ b/registry/schema-org/Optician.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Optician", + "title": "Optician", + "description": "A store that sells reading glasses and similar devices for improving vision.", + "type": "object", + "allOf": [ + { + "description": "A particular physical or virtual business of an organization for medical purposes. Examples of MedicalBusiness include different businesses run by health professionals.", + "$ref": "schema:MedicalBusiness" + } + ] +} diff --git a/registry/schema-org/Order.schema.json b/registry/schema-org/Order.schema.json new file mode 100644 index 0000000..b5fcbd6 --- /dev/null +++ b/registry/schema-org/Order.schema.json @@ -0,0 +1,151 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Order", + "title": "Order", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "A utility class that serves as the umbrella for a number of 'intangible' things such as quantities, structured values, etc.", + "$ref": "schema:Intangible" + } + ], + "properties": { + "acceptedOffer": { + "description": "The offer(s) -- e.g., product, quantity and price combinations -- included in the order.", + "oneOf": [ + { "$ref": "schema:Offer" }, + { "type": "array", "items": { "$ref": "schema:Offer" } } + ] + }, + "billingAddress": { + "description": "The billing address for the order.", + "$ref": "schema:PostalAddress" + }, + "broker": { + "description": "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.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + } + } + ] + }, + "confirmationNumber": { + "description": "A number that confirms the given order or payment has been received.", + "type": "string" + }, + "customer": { + "description": "Party placing the order or paying the invoice.", + "anyOf": [{ "$ref": "schema:Organization" }, { "$ref": "schema:Person" }] + }, + "discount": { + "description": "Any discount applied (to an Order).", + "anyOf": [{ "type": "number" }, { "type": "string" }] + }, + "discountCode": { + "description": "Code used to redeem a discount.", + "type": "string" + }, + "discountCurrency": { + "description": "The currency of the discount.\\n\\nUse standard formats: [ISO 4217 currency format](http://en.wikipedia.org/wiki/ISO_4217), e.g. \"USD\"; [Ticker symbol](https://en.wikipedia.org/wiki/List_of_cryptocurrencies) for cryptocurrencies, e.g. \"BTC\"; well known names for [Local Exchange Trading Systems](https://en.wikipedia.org/wiki/Local_exchange_trading_system) (LETS) and other currency types, e.g. \"Ithaca HOUR\".", + "type": "string" + }, + "isGift": { + "description": "Indicates whether the offer was accepted as a gift for someone other than the buyer.", + "type": "boolean" + }, + "merchant": { + "description": "'merchant' is an out-dated term for 'seller'.", + "anyOf": [{ "$ref": "schema:Organization" }, { "$ref": "schema:Person" }] + }, + "orderDate": { + "description": "Date order was placed.", + "anyOf": [ + { "type": "string", "format": "date" }, + { "type": "string", "format": "date-time" } + ] + }, + "orderDelivery": { + "description": "The delivery of the parcel related to this order or order item.", + "$ref": "schema:ParcelDelivery" + }, + "orderNumber": { + "description": "The identifier of the transaction.", + "type": "string" + }, + "orderStatus": { + "description": "The current status of the order.", + "$ref": "schema:OrderStatus" + }, + "orderedItem": { + "description": "The item ordered.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:OrderItem" }, + { "$ref": "schema:Product" }, + { "$ref": "schema:Service" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:OrderItem" }, + { "$ref": "schema:Product" }, + { "$ref": "schema:Service" } + ] + } + } + ] + }, + "partOfInvoice": { + "description": "The order is being paid as part of the referenced Invoice.", + "$ref": "schema:Invoice" + }, + "paymentDue": { + "description": "The date that payment is due.", + "type": "string", + "format": "date-time" + }, + "paymentDueDate": { + "description": "The date that payment is due.", + "anyOf": [ + { "type": "string", "format": "date" }, + { "type": "string", "format": "date-time" } + ] + }, + "paymentMethod": { + "description": "The name of the credit card or other method of payment for the order.", + "anyOf": [{ "type": "string" }, { "$ref": "schema:PaymentMethod" }] + }, + "paymentMethodId": { + "description": "An identifier for the method of payment used (e.g. the last 4 digits of the credit card).", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "paymentUrl": { + "description": "The URL for sending a payment.", + "type": "string", + "format": "uri" + }, + "seller": { + "description": "An entity which offers (sells / leases / lends / loans) the services / goods. A seller may also be a provider.", + "anyOf": [{ "$ref": "schema:Organization" }, { "$ref": "schema:Person" }] + } + } +} diff --git a/registry/schema-org/OrderAction.schema.json b/registry/schema-org/OrderAction.schema.json new file mode 100644 index 0000000..fc80bce --- /dev/null +++ b/registry/schema-org/OrderAction.schema.json @@ -0,0 +1,22 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:OrderAction", + "title": "OrderAction", + "description": "An agent orders an object/product/service to be delivered/sent.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:TradeAction" + } + ], + "properties": { + "deliveryMethod": { + "description": "A sub property of instrument. The method of delivery.", + "oneOf": [ + { "$ref": "schema:DeliveryMethod" }, + { "type": "array", "items": { "$ref": "schema:DeliveryMethod" } } + ] + } + } +} diff --git a/registry/schema-org/OrderItem.schema.json b/registry/schema-org/OrderItem.schema.json new file mode 100644 index 0000000..da0e76b --- /dev/null +++ b/registry/schema-org/OrderItem.schema.json @@ -0,0 +1,53 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:OrderItem", + "title": "OrderItem", + "description": "An order item is a line of an order. It includes the quantity and shipping details of a bought offer.", + "type": "object", + "allOf": [ + { + "description": "A utility class that serves as the umbrella for a number of 'intangible' things such as quantities, structured values, etc.", + "$ref": "schema:Intangible" + } + ], + "properties": { + "orderDelivery": { + "description": "The delivery of the parcel related to this order or order item.", + "$ref": "schema:ParcelDelivery" + }, + "orderItemNumber": { + "description": "The identifier of the order item.", + "type": "string" + }, + "orderItemStatus": { + "description": "The current status of the order item.", + "$ref": "schema:OrderStatus" + }, + "orderQuantity": { + "description": "The number of the item ordered. If the property is not set, assume the quantity is one.", + "anyOf": [{ "type": "number" }, { "$ref": "schema:QuantitativeValue" }] + }, + "orderedItem": { + "description": "The item ordered.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:OrderItem" }, + { "$ref": "schema:Product" }, + { "$ref": "schema:Service" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:OrderItem" }, + { "$ref": "schema:Product" }, + { "$ref": "schema:Service" } + ] + } + } + ] + } + } +} diff --git a/registry/schema-org/OrderStatus.schema.json b/registry/schema-org/OrderStatus.schema.json new file mode 100644 index 0000000..427da1e --- /dev/null +++ b/registry/schema-org/OrderStatus.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:OrderStatus", + "title": "OrderStatus", + "description": "Enumerated status values for Order.", + "type": "object", + "allOf": [ + { + "description": "Lists or enumerations dealing with status types.", + "$ref": "schema:StatusEnumeration" + } + ] +} diff --git a/registry/schema-org/Organization.schema.json b/registry/schema-org/Organization.schema.json new file mode 100644 index 0000000..173903b --- /dev/null +++ b/registry/schema-org/Organization.schema.json @@ -0,0 +1,711 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Organization", + "title": "Organization", + "description": "An organization such as a school, NGO, corporation, club, etc.", + "type": "object", + "allOf": [ + { "description": "The most generic type of item.", "$ref": "schema:Thing" } + ], + "properties": { + "acceptedPaymentMethod": { + "description": "The payment method(s) that are accepted in general by an organization, or for some specific demand or offer.", + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:LoanOrCredit" }, + { "$ref": "schema:PaymentMethod" } + ] + }, + "actionableFeedbackPolicy": { + "description": "For a [[NewsMediaOrganization]] or other news-related [[Organization]], a statement about public engagement activities (for news media, the newsroom’s), including involving the public - digitally or otherwise -- in coverage decisions, reporting and activities after publication.", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:CreativeWork" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:CreativeWork" } + ] + } + } + ] + }, + "address": { + "description": "Physical address of the item.", + "anyOf": [{ "type": "string" }, { "$ref": "schema:PostalAddress" }] + }, + "agentInteractionStatistic": { + "description": "The number of completed interactions for this entity, in a particular role (the 'agent'), in a particular action (indicated in the statistic), and in a particular context (i.e. interactionService).", + "$ref": "schema:InteractionCounter" + }, + "aggregateRating": { + "description": "The overall rating, based on a collection of reviews or ratings, of the item.", + "$ref": "schema:AggregateRating" + }, + "alumni": { + "description": "Alumni of an organization.", + "oneOf": [ + { "$ref": "schema:Person" }, + { "type": "array", "items": { "$ref": "schema:Person" } } + ] + }, + "areaServed": { + "description": "The geographic area where a service or offered item is provided.", + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:AdministrativeArea" }, + { "$ref": "schema:GeoShape" }, + { "$ref": "schema:Place" } + ] + }, + "award": { + "description": "An award won by or for this item.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "awards": { + "description": "Awards won by or for this item.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "brand": { + "description": "The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.", + "anyOf": [{ "$ref": "schema:Brand" }, { "$ref": "schema:Organization" }] + }, + "companyRegistration": { + "description": "The official registration number of a business including the organization that issued it such as Company House or Chamber of Commerce.", + "$ref": "schema:Certification" + }, + "contactPoint": { + "description": "A contact point for a person or organization.", + "oneOf": [ + { "$ref": "schema:ContactPoint" }, + { "type": "array", "items": { "$ref": "schema:ContactPoint" } } + ] + }, + "contactPoints": { + "description": "A contact point for a person or organization.", + "oneOf": [ + { "$ref": "schema:ContactPoint" }, + { "type": "array", "items": { "$ref": "schema:ContactPoint" } } + ] + }, + "correctionsPolicy": { + "description": "For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:CreativeWork" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:CreativeWork" } + ] + } + } + ] + }, + "department": { + "description": "A relationship between an organization and a department of that organization, also described as an organization (allowing different urls, logos, opening hours). For example: a store with a pharmacy, or a bakery with a cafe.", + "oneOf": [ + { "$ref": "schema:Organization" }, + { "type": "array", "items": { "$ref": "schema:Organization" } } + ] + }, + "dissolutionDate": { + "description": "The date that this organization was dissolved.", + "type": "string", + "format": "date" + }, + "diversityPolicy": { + "description": "Statement on diversity policy by an [[Organization]] e.g. a [[NewsMediaOrganization]]. For a [[NewsMediaOrganization]], a statement describing the newsroom’s diversity policy on both staffing and sources, typically providing staffing data.", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:CreativeWork" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:CreativeWork" } + ] + } + } + ] + }, + "diversityStaffingReport": { + "description": "For an [[Organization]] (often but not necessarily a [[NewsMediaOrganization]]), a report on staffing diversity issues. In a news context this might be for example ASNE or RTDNA (US) reports, or self-reported.", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:Article" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:Article" } + ] + } + } + ] + }, + "duns": { + "description": "The Dun & Bradstreet DUNS number for identifying an organization or business person.", + "type": "string" + }, + "email": { + "description": "Email address.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "employee": { + "description": "Someone working for this organization.", + "oneOf": [ + { "$ref": "schema:Person" }, + { "type": "array", "items": { "$ref": "schema:Person" } } + ] + }, + "employees": { + "description": "People working for this organization.", + "oneOf": [ + { "$ref": "schema:Person" }, + { "type": "array", "items": { "$ref": "schema:Person" } } + ] + }, + "ethicsPolicy": { + "description": "Statement about ethics policy, e.g. of a [[NewsMediaOrganization]] regarding journalistic and publishing practices, or of a [[Restaurant]], a page describing food source policies. In the case of a [[NewsMediaOrganization]], an ethicsPolicy is typically a statement describing the personal, organizational, and corporate standards of behavior expected by the organization.", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:CreativeWork" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:CreativeWork" } + ] + } + } + ] + }, + "event": { + "description": "Upcoming or past event associated with this place, organization, or action.", + "oneOf": [ + { "$ref": "schema:Event" }, + { "type": "array", "items": { "$ref": "schema:Event" } } + ] + }, + "events": { + "description": "Upcoming or past events associated with this place or organization.", + "oneOf": [ + { "$ref": "schema:Event" }, + { "type": "array", "items": { "$ref": "schema:Event" } } + ] + }, + "faxNumber": { "description": "The fax number.", "type": "string" }, + "founder": { + "description": "A person or organization who founded this organization.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + } + } + ] + }, + "founders": { + "description": "A person who founded this organization.", + "oneOf": [ + { "$ref": "schema:Person" }, + { "type": "array", "items": { "$ref": "schema:Person" } } + ] + }, + "foundingDate": { + "description": "The date that this organization was founded.", + "type": "string", + "format": "date" + }, + "foundingLocation": { + "description": "The place where the Organization was founded.", + "$ref": "schema:Place" + }, + "funder": { + "description": "A person or organization that supports (sponsors) something through some kind of financial contribution.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + } + } + ] + }, + "funding": { + "description": "A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].", + "oneOf": [ + { "$ref": "schema:Grant" }, + { "type": "array", "items": { "$ref": "schema:Grant" } } + ] + }, + "globalLocationNumber": { + "description": "The [Global Location Number](http://www.gs1.org/gln) (GLN, sometimes also referred to as International Location Number or ILN) of the respective organization, person, or place. The GLN is a 13-digit number used to identify parties and physical locations.", + "type": "string" + }, + "hasCertification": { + "description": "Certification information about a product, organization, service, place, or person.", + "oneOf": [ + { "$ref": "schema:Certification" }, + { "type": "array", "items": { "$ref": "schema:Certification" } } + ] + }, + "hasCredential": { + "description": "A credential awarded to the Person or Organization.", + "oneOf": [ + { "$ref": "schema:EducationalOccupationalCredential" }, + { + "type": "array", + "items": { "$ref": "schema:EducationalOccupationalCredential" } + } + ] + }, + "hasGS1DigitalLink": { + "description": "The GS1 digital link associated with the object. This URL should conform to the particular requirements of digital links. The link should only contain the Application Identifiers (AIs) that are relevant for the entity being annotated, for instance a [[Product]] or an [[Organization]], and for the correct granularity. In particular, for products:A Digital Link that contains a serial number (AI 21) should only be present on instances of [[IndividualProduct]]A Digital Link that contains a lot number (AI 10) should be annotated as [[SomeProduct]] if only products from that lot are sold, or [[IndividualProduct]] if there is only a specific product.A Digital Link that contains a global model number (AI 8013) should be attached to a [[Product]] or a [[ProductModel]]. Other item types should be adapted similarly.", + "type": "string", + "format": "uri" + }, + "hasMemberProgram": { + "description": "MemberProgram offered by an Organization, for example an eCommerce merchant or an airline.", + "oneOf": [ + { "$ref": "schema:MemberProgram" }, + { "type": "array", "items": { "$ref": "schema:MemberProgram" } } + ] + }, + "hasMerchantReturnPolicy": { + "description": "Specifies a MerchantReturnPolicy that may be applicable.", + "oneOf": [ + { "$ref": "schema:MerchantReturnPolicy" }, + { "type": "array", "items": { "$ref": "schema:MerchantReturnPolicy" } } + ] + }, + "hasOfferCatalog": { + "description": "Indicates an OfferCatalog listing for this Organization, Person, or Service.", + "oneOf": [ + { "$ref": "schema:OfferCatalog" }, + { "type": "array", "items": { "$ref": "schema:OfferCatalog" } } + ] + }, + "hasPOS": { + "description": "Points-of-Sales operated by the organization or person.", + "oneOf": [ + { "$ref": "schema:Place" }, + { "type": "array", "items": { "$ref": "schema:Place" } } + ] + }, + "hasShippingService": { + "description": "Specification of a shipping service offered by the organization.", + "oneOf": [ + { "$ref": "schema:ShippingService" }, + { "type": "array", "items": { "$ref": "schema:ShippingService" } } + ] + }, + "interactionStatistic": { + "description": "The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.", + "$ref": "schema:InteractionCounter" + }, + "isicV4": { + "description": "The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.", + "type": "string" + }, + "iso6523Code": { + "description": "An organization identifier as defined in [ISO 6523(-1)](https://en.wikipedia.org/wiki/ISO/IEC_6523). The identifier should be in the `XXXX:YYYYYY:ZZZ` or `XXXX:YYYYYY`format. Where `XXXX` is a 4 digit _ICD_ (International Code Designator), `YYYYYY` is an _OID_ (Organization Identifier) with all formatting characters (dots, dashes, spaces) removed with a maximal length of 35 characters, and `ZZZ` is an optional OPI (Organization Part Identifier) with a maximum length of 35 characters. The various components (ICD, OID, OPI) are joined with a colon character (ASCII `0x3a`). Note that many existing organization identifiers defined as attributes like [leiCode](https://schema.org/leiCode) (`0199`), [duns](https://schema.org/duns) (`0060`) or [GLN](https://schema.org/globalLocationNumber) (`0088`) can be expressed using ISO-6523. If possible, ISO-6523 codes should be preferred to populating [vatID](https://schema.org/vatID) or [taxID](https://schema.org/taxID), as ISO identifiers are less ambiguous.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "keywords": { + "description": "Keywords or tags used to describe some item. Multiple textual entries in a keywords list are typically delimited by commas, or by repeating the property.", + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:DefinedTerm" } + ] + }, + "knowsAbout": { + "description": "Of a [[Person]], and less typically of an [[Organization]], to indicate a topic that is known about - suggesting possible expertise but not implying it. We do not distinguish skill levels here, or relate this to educational content, events, objectives or [[JobPosting]] descriptions.", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:Thing" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:Thing" } + ] + } + } + ] + }, + "knowsLanguage": { + "description": "Of a [[Person]], and less typically of an [[Organization]], to indicate a known language. We do not distinguish skill levels or reading/writing/speaking/signing here. Use language codes from the [IETF BCP 47 standard](http://tools.ietf.org/html/bcp47).", + "oneOf": [ + { "anyOf": [{ "type": "string" }, { "$ref": "schema:Language" }] }, + { + "type": "array", + "items": { + "anyOf": [{ "type": "string" }, { "$ref": "schema:Language" }] + } + } + ] + }, + "legalAddress": { + "description": "The legal address of an organization which acts as the officially registered address used for legal and tax purposes. The legal address can be different from the place of operations of a business and other addresses can be part of an organization.", + "$ref": "schema:PostalAddress" + }, + "legalName": { + "description": "The official name of the organization, e.g. the registered company name.", + "type": "string" + }, + "legalRepresentative": { + "description": "One or multiple persons who represent this organization legally such as CEO or sole administrator.", + "oneOf": [ + { "$ref": "schema:Person" }, + { "type": "array", "items": { "$ref": "schema:Person" } } + ] + }, + "leiCode": { + "description": "An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "location": { + "description": "The location of, for example, where an event is happening, where an organization is located, or where an action takes place.", + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:Place" }, + { "$ref": "schema:PostalAddress" }, + { "$ref": "schema:VirtualLocation" } + ] + }, + "logo": { + "description": "An associated logo.", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:ImageObject" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:ImageObject" } + ] + } + } + ] + }, + "makesOffer": { + "description": "A pointer to products or services offered by the organization or person.", + "oneOf": [ + { "$ref": "schema:Offer" }, + { "type": "array", "items": { "$ref": "schema:Offer" } } + ] + }, + "member": { + "description": "A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + } + } + ] + }, + "memberOf": { + "description": "An Organization (or ProgramMembership) to which this Person or Organization belongs.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:MemberProgramTier" }, + { "$ref": "schema:Organization" }, + { "$ref": "schema:ProgramMembership" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:MemberProgramTier" }, + { "$ref": "schema:Organization" }, + { "$ref": "schema:ProgramMembership" } + ] + } + } + ] + }, + "members": { + "description": "A member of this organization.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + } + } + ] + }, + "naics": { + "description": "The North American Industry Classification System (NAICS) code for a particular organization or business person.", + "type": "string" + }, + "nonprofitStatus": { + "description": "nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.", + "oneOf": [ + { "$ref": "schema:NonprofitType" }, + { "type": "array", "items": { "$ref": "schema:NonprofitType" } } + ] + }, + "numberOfEmployees": { + "description": "The number of employees in an organization, e.g. business.", + "$ref": "schema:QuantitativeValue" + }, + "ownershipFundingInfo": { + "description": "For an [[Organization]] (often but not necessarily a [[NewsMediaOrganization]]), a description of organizational ownership structure; funding and grants. In a news/media setting, this is with particular reference to editorial independence. Note that the [[funder]] is also available and can be used to make basic funder information machine-readable.", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:AboutPage" }, + { "$ref": "schema:CreativeWork" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:AboutPage" }, + { "$ref": "schema:CreativeWork" } + ] + } + } + ] + }, + "owns": { + "description": "Products owned by the organization or person.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:OwnershipInfo" }, + { "$ref": "schema:Product" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:OwnershipInfo" }, + { "$ref": "schema:Product" } + ] + } + } + ] + }, + "parentOrganization": { + "description": "The larger organization that this organization is a [[subOrganization]] of, if any.", + "$ref": "schema:Organization" + }, + "publishingPrinciples": { + "description": "The publishingPrinciples property indicates (typically via [[URL]]) a document describing the editorial principles of an [[Organization]] (or individual, e.g. a [[Person]] writing a blog) that relate to their activities as a publisher, e.g. ethics or diversity policies. When applied to a [[CreativeWork]] (e.g. [[NewsArticle]]) the principles are those of the party primarily responsible for the creation of the [[CreativeWork]].\n\nWhile such policies are most typically expressed in natural language, sometimes related information (e.g. indicating a [[funder]]) can be expressed using schema.org terminology.\n", + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:CreativeWork" } + ] + }, + "review": { + "description": "A review of the item.", + "oneOf": [ + { "$ref": "schema:Review" }, + { "type": "array", "items": { "$ref": "schema:Review" } } + ] + }, + "reviews": { + "description": "Review of the item.", + "oneOf": [ + { "$ref": "schema:Review" }, + { "type": "array", "items": { "$ref": "schema:Review" } } + ] + }, + "seeks": { + "description": "A pointer to products or services sought by the organization or person (demand).", + "oneOf": [ + { "$ref": "schema:Demand" }, + { "type": "array", "items": { "$ref": "schema:Demand" } } + ] + }, + "serviceArea": { + "description": "The geographic area where the service is provided.", + "anyOf": [ + { "$ref": "schema:AdministrativeArea" }, + { "$ref": "schema:GeoShape" }, + { "$ref": "schema:Place" } + ] + }, + "skills": { + "description": "A statement of knowledge, skill, ability, task or any other assertion expressing a competency that is either claimed by a person, an organization or desired or required to fulfill a role or to work in an occupation.", + "oneOf": [ + { "anyOf": [{ "type": "string" }, { "$ref": "schema:DefinedTerm" }] }, + { + "type": "array", + "items": { + "anyOf": [{ "type": "string" }, { "$ref": "schema:DefinedTerm" }] + } + } + ] + }, + "slogan": { + "description": "A slogan or motto associated with the item.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "sponsor": { + "description": "A person or organization that supports a thing through a pledge, promise, or financial contribution. E.g. a sponsor of a Medical Study or a corporate sponsor of an event.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + } + } + ] + }, + "subOrganization": { + "description": "A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific 'department' property.", + "oneOf": [ + { "$ref": "schema:Organization" }, + { "type": "array", "items": { "$ref": "schema:Organization" } } + ] + }, + "taxID": { + "description": "The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.", + "type": "string" + }, + "telephone": { "description": "The telephone number.", "type": "string" }, + "unnamedSourcesPolicy": { + "description": "For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:CreativeWork" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:CreativeWork" } + ] + } + } + ] + }, + "vatID": { + "description": "The Value-added Tax ID of the organization or person.", + "type": "string" + } + } +} diff --git a/registry/schema-org/OrganizationRole.schema.json b/registry/schema-org/OrganizationRole.schema.json new file mode 100644 index 0000000..c3b49a5 --- /dev/null +++ b/registry/schema-org/OrganizationRole.schema.json @@ -0,0 +1,22 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:OrganizationRole", + "title": "OrganizationRole", + "description": "A subclass of Role used to describe roles within organizations.", + "type": "object", + "allOf": [ + { + "description": "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).", + "$ref": "schema:Role" + } + ], + "properties": { + "numberedPosition": { + "description": "A number associated with a role in an organization, for example, the number on an athlete's jersey.", + "oneOf": [ + { "type": "number" }, + { "type": "array", "items": { "type": "number" } } + ] + } + } +} diff --git a/registry/schema-org/OrganizeAction.schema.json b/registry/schema-org/OrganizeAction.schema.json new file mode 100644 index 0000000..6bc5508 --- /dev/null +++ b/registry/schema-org/OrganizeAction.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:OrganizeAction", + "title": "OrganizeAction", + "description": "The act of manipulating/administering/supervising/controlling one or more objects.", + "type": "object", + "allOf": [ + { + "description": "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).", + "$ref": "schema:Action" + } + ] +} diff --git a/registry/schema-org/OutletStore.schema.json b/registry/schema-org/OutletStore.schema.json new file mode 100644 index 0000000..ec65241 --- /dev/null +++ b/registry/schema-org/OutletStore.schema.json @@ -0,0 +1,8 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:OutletStore", + "title": "OutletStore", + "description": "An outlet store.", + "type": "object", + "allOf": [{ "description": "A retail good store.", "$ref": "schema:Store" }] +} diff --git a/registry/schema-org/OwnershipInfo.schema.json b/registry/schema-org/OwnershipInfo.schema.json new file mode 100644 index 0000000..10197e4 --- /dev/null +++ b/registry/schema-org/OwnershipInfo.schema.json @@ -0,0 +1,33 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:OwnershipInfo", + "title": "OwnershipInfo", + "description": "A structured value providing information about when a certain organization or person owned a certain product.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:StructuredValue" + } + ], + "properties": { + "acquiredFrom": { + "description": "The organization or person from which the product was acquired.", + "anyOf": [{ "$ref": "schema:Organization" }, { "$ref": "schema:Person" }] + }, + "ownedFrom": { + "description": "The date and time of obtaining the product.", + "type": "string", + "format": "date-time" + }, + "ownedThrough": { + "description": "The date and time of giving up ownership on the product.", + "type": "string", + "format": "date-time" + }, + "typeOfGood": { + "description": "The product that this structured value is referring to.", + "anyOf": [{ "$ref": "schema:Product" }, { "$ref": "schema:Service" }] + } + } +} diff --git a/registry/schema-org/PaintAction.schema.json b/registry/schema-org/PaintAction.schema.json new file mode 100644 index 0000000..c4b9cfa --- /dev/null +++ b/registry/schema-org/PaintAction.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:PaintAction", + "title": "PaintAction", + "description": "The act of producing a painting, typically with paint and canvas as instruments.", + "type": "object", + "allOf": [ + { + "description": "The act of deliberately creating/producing/generating/building a result out of the agent.", + "$ref": "schema:CreateAction" + } + ] +} diff --git a/registry/schema-org/Painting.schema.json b/registry/schema-org/Painting.schema.json new file mode 100644 index 0000000..f0c81cb --- /dev/null +++ b/registry/schema-org/Painting.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Painting", + "title": "Painting", + "description": "A painting.", + "type": "object", + "allOf": [ + { + "description": "The most generic kind of creative work, including books, movies, photographs, software programs, etc.", + "$ref": "schema:CreativeWork" + } + ] +} diff --git a/registry/schema-org/PalliativeProcedure.schema.json b/registry/schema-org/PalliativeProcedure.schema.json new file mode 100644 index 0000000..a0474ff --- /dev/null +++ b/registry/schema-org/PalliativeProcedure.schema.json @@ -0,0 +1,17 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:PalliativeProcedure", + "title": "PalliativeProcedure", + "description": "A medical procedure intended primarily for palliative purposes, aimed at relieving the symptoms of an underlying health condition.", + "type": "object", + "allOf": [ + { + "description": "A process of care used in either a diagnostic, therapeutic, preventive or palliative capacity that relies on invasive (surgical), non-invasive, or other techniques.", + "$ref": "schema:MedicalProcedure" + }, + { + "description": "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.", + "$ref": "schema:MedicalTherapy" + } + ] +} diff --git a/registry/schema-org/ParcelDelivery.schema.json b/registry/schema-org/ParcelDelivery.schema.json new file mode 100644 index 0000000..4c73da1 --- /dev/null +++ b/registry/schema-org/ParcelDelivery.schema.json @@ -0,0 +1,76 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:ParcelDelivery", + "title": "ParcelDelivery", + "description": "The delivery of a parcel either via the postal service or a commercial service.", + "type": "object", + "allOf": [ + { + "description": "A utility class that serves as the umbrella for a number of 'intangible' things such as quantities, structured values, etc.", + "$ref": "schema:Intangible" + } + ], + "properties": { + "carrier": { + "description": "'carrier' is an out-dated term indicating the 'provider' for parcel delivery and flights.", + "$ref": "schema:Organization" + }, + "deliveryAddress": { + "description": "Destination address.", + "$ref": "schema:PostalAddress" + }, + "deliveryStatus": { + "description": "New entry added as the package passes through each leg of its journey (from shipment to final delivery).", + "oneOf": [ + { "$ref": "schema:DeliveryEvent" }, + { "type": "array", "items": { "$ref": "schema:DeliveryEvent" } } + ] + }, + "expectedArrivalFrom": { + "description": "The earliest date the package may arrive.", + "anyOf": [ + { "type": "string", "format": "date" }, + { "type": "string", "format": "date-time" } + ] + }, + "expectedArrivalUntil": { + "description": "The latest date the package may arrive.", + "anyOf": [ + { "type": "string", "format": "date" }, + { "type": "string", "format": "date-time" } + ] + }, + "hasDeliveryMethod": { + "description": "Method used for delivery or shipping.", + "$ref": "schema:DeliveryMethod" + }, + "itemShipped": { + "description": "Item(s) being shipped.", + "oneOf": [ + { "$ref": "schema:Product" }, + { "type": "array", "items": { "$ref": "schema:Product" } } + ] + }, + "originAddress": { + "description": "Shipper's address.", + "$ref": "schema:PostalAddress" + }, + "partOfOrder": { + "description": "The overall order the items in this delivery were included in.", + "$ref": "schema:Order" + }, + "provider": { + "description": "The service provider, service operator, or service performer; the goods producer. Another party (a seller) may offer those services or goods on behalf of the provider. A provider may also serve as the seller.", + "anyOf": [{ "$ref": "schema:Organization" }, { "$ref": "schema:Person" }] + }, + "trackingNumber": { + "description": "Shipper tracking number.", + "type": "string" + }, + "trackingUrl": { + "description": "Tracking url for the parcel delivery.", + "type": "string", + "format": "uri" + } + } +} diff --git a/registry/schema-org/ParentAudience.schema.json b/registry/schema-org/ParentAudience.schema.json new file mode 100644 index 0000000..ff05139 --- /dev/null +++ b/registry/schema-org/ParentAudience.schema.json @@ -0,0 +1,23 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:ParentAudience", + "title": "ParentAudience", + "description": "A set of characteristics describing parents, who can be interested in viewing some content.", + "type": "object", + "allOf": [ + { + "description": "A set of characteristics belonging to people, e.g. who compose an item's target audience.", + "$ref": "schema:PeopleAudience" + } + ], + "properties": { + "childMaxAge": { + "description": "Maximal age of the child.", + "type": "number" + }, + "childMinAge": { + "description": "Minimal age of the child.", + "type": "number" + } + } +} diff --git a/registry/schema-org/Park.schema.json b/registry/schema-org/Park.schema.json new file mode 100644 index 0000000..0ff166e --- /dev/null +++ b/registry/schema-org/Park.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Park", + "title": "Park", + "description": "A park.", + "type": "object", + "allOf": [ + { + "description": "A public structure, such as a town hall or concert hall.", + "$ref": "schema:CivicStructure" + } + ] +} diff --git a/registry/schema-org/ParkingFacility.schema.json b/registry/schema-org/ParkingFacility.schema.json new file mode 100644 index 0000000..3095025 --- /dev/null +++ b/registry/schema-org/ParkingFacility.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:ParkingFacility", + "title": "ParkingFacility", + "description": "A parking lot or other parking facility.", + "type": "object", + "allOf": [ + { + "description": "A public structure, such as a town hall or concert hall.", + "$ref": "schema:CivicStructure" + } + ] +} diff --git a/registry/schema-org/PathologyTest.schema.json b/registry/schema-org/PathologyTest.schema.json new file mode 100644 index 0000000..f4c507a --- /dev/null +++ b/registry/schema-org/PathologyTest.schema.json @@ -0,0 +1,19 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:PathologyTest", + "title": "PathologyTest", + "description": "A medical test performed by a laboratory that typically involves examination of a tissue sample by a pathologist.", + "type": "object", + "allOf": [ + { + "description": "Any medical test, typically performed for diagnostic purposes.", + "$ref": "schema:MedicalTest" + } + ], + "properties": { + "tissueSample": { + "description": "The type of tissue sample required for the test.", + "type": "string" + } + } +} diff --git a/registry/schema-org/Patient.schema.json b/registry/schema-org/Patient.schema.json new file mode 100644 index 0000000..c60c554 --- /dev/null +++ b/registry/schema-org/Patient.schema.json @@ -0,0 +1,37 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Patient", + "title": "Patient", + "description": "A patient is any person recipient of health care services.", + "type": "object", + "allOf": [ + { + "description": "Target audiences for medical web pages.", + "$ref": "schema:MedicalAudience" + }, + { + "description": "A person (alive, dead, undead, or fictional).", + "$ref": "schema:Person" + } + ], + "properties": { + "diagnosis": { + "description": "One or more alternative conditions considered in the differential diagnosis process as output of a diagnosis process.", + "oneOf": [ + { "$ref": "schema:MedicalCondition" }, + { "type": "array", "items": { "$ref": "schema:MedicalCondition" } } + ] + }, + "drug": { + "description": "Specifying a drug or medicine used in a medication procedure.", + "oneOf": [ + { "$ref": "schema:Drug" }, + { "type": "array", "items": { "$ref": "schema:Drug" } } + ] + }, + "healthCondition": { + "description": "Specifying the health condition(s) of a patient, medical study, or other target audience.", + "$ref": "schema:MedicalCondition" + } + } +} diff --git a/registry/schema-org/PawnShop.schema.json b/registry/schema-org/PawnShop.schema.json new file mode 100644 index 0000000..4073c7e --- /dev/null +++ b/registry/schema-org/PawnShop.schema.json @@ -0,0 +1,8 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:PawnShop", + "title": "PawnShop", + "description": "A shop that will buy, or lend money against the security of, personal possessions.", + "type": "object", + "allOf": [{ "description": "A retail good store.", "$ref": "schema:Store" }] +} diff --git a/registry/schema-org/PayAction.schema.json b/registry/schema-org/PayAction.schema.json new file mode 100644 index 0000000..57e78f3 --- /dev/null +++ b/registry/schema-org/PayAction.schema.json @@ -0,0 +1,39 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:PayAction", + "title": "PayAction", + "description": "An agent pays a price to a participant.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:TradeAction" + } + ], + "properties": { + "recipient": { + "description": "A sub property of participant. The participant who is at the receiving end of the action.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:Audience" }, + { "$ref": "schema:ContactPoint" }, + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:Audience" }, + { "$ref": "schema:ContactPoint" }, + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + } + } + ] + } + } +} diff --git a/registry/schema-org/PaymentCard.schema.json b/registry/schema-org/PaymentCard.schema.json new file mode 100644 index 0000000..ab932ee --- /dev/null +++ b/registry/schema-org/PaymentCard.schema.json @@ -0,0 +1,44 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:PaymentCard", + "title": "PaymentCard", + "description": "A payment method using a credit, debit, store or other card to associate the payment with an account.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:FinancialProduct" + }, + { + "description": "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. The following legacy values should be accepted:\n \\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\\nStructured values are recommended for newer payment methods.", + "$ref": "schema:PaymentMethod" + } + ], + "properties": { + "cashBack": { + "description": "A cardholder benefit that pays the cardholder a small percentage of their net expenditures.", + "oneOf": [ + { "anyOf": [{ "type": "boolean" }, { "type": "number" }] }, + { + "type": "array", + "items": { "anyOf": [{ "type": "boolean" }, { "type": "number" }] } + } + ] + }, + "contactlessPayment": { + "description": "A secure method for consumers to purchase products or services via debit, credit or smartcards by using RFID or NFC technology.", + "type": "boolean" + }, + "floorLimit": { + "description": "A floor limit is the amount of money above which credit card transactions must be authorized.", + "oneOf": [ + { "$ref": "schema:MonetaryAmount" }, + { "type": "array", "items": { "$ref": "schema:MonetaryAmount" } } + ] + }, + "monthlyMinimumRepaymentAmount": { + "description": "The minimum payment is the lowest amount of money that one is required to pay on a credit card statement each month.", + "anyOf": [{ "type": "number" }, { "$ref": "schema:MonetaryAmount" }] + } + } +} diff --git a/registry/schema-org/PaymentChargeSpecification.schema.json b/registry/schema-org/PaymentChargeSpecification.schema.json new file mode 100644 index 0000000..a14989a --- /dev/null +++ b/registry/schema-org/PaymentChargeSpecification.schema.json @@ -0,0 +1,23 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:PaymentChargeSpecification", + "title": "PaymentChargeSpecification", + "description": "The costs of settling the payment using a particular payment method.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:PriceSpecification" + } + ], + "properties": { + "appliesToDeliveryMethod": { + "description": "The delivery method(s) to which the delivery charge or payment charge specification applies.", + "$ref": "schema:DeliveryMethod" + }, + "appliesToPaymentMethod": { + "description": "The payment method(s) to which the payment charge specification applies.", + "$ref": "schema:PaymentMethod" + } + } +} diff --git a/registry/schema-org/PaymentMethod.schema.json b/registry/schema-org/PaymentMethod.schema.json new file mode 100644 index 0000000..cd40850 --- /dev/null +++ b/registry/schema-org/PaymentMethod.schema.json @@ -0,0 +1,19 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:PaymentMethod", + "title": "PaymentMethod", + "description": "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. The following legacy values should be accepted:\n \\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\\nStructured values are recommended for newer payment methods.", + "type": "object", + "allOf": [ + { + "description": "A utility class that serves as the umbrella for a number of 'intangible' things such as quantities, structured values, etc.", + "$ref": "schema:Intangible" + } + ], + "properties": { + "paymentMethodType": { + "description": "The type of a payment method.", + "$ref": "schema:PaymentMethodType" + } + } +} diff --git a/registry/schema-org/PaymentMethodType.schema.json b/registry/schema-org/PaymentMethodType.schema.json new file mode 100644 index 0000000..8218d93 --- /dev/null +++ b/registry/schema-org/PaymentMethodType.schema.json @@ -0,0 +1,41 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:PaymentMethodType", + "title": "PaymentMethodType", + "description": "The type of payment method, only for generic payment types, specific forms of payments, like card payment should be expressed using subclasses of PaymentMethod.", + "type": "string", + "oneOf": [ + { + "description": "Payment in advance by bank transfer, equivalent to http://purl.org/goodrelations/v1#ByBankTransferInAdvance.", + "const": "ByBankTransferInAdvance" + }, + { + "description": "Payment by invoice, typically after the goods were delivered, equivalent to http://purl.org/goodrelations/v1#ByInvoice.", + "const": "ByInvoice" + }, + { + "description": "Cash on Delivery (COD) payment, equivalent to http://purl.org/goodrelations/v1#COD.", + "const": "COD" + }, + { + "description": "Payment using cash, on premises, equivalent to http://purl.org/goodrelations/v1#Cash.", + "const": "Cash" + }, + { + "description": "Payment in advance by sending a check, equivalent to http://purl.org/goodrelations/v1#CheckInAdvance.", + "const": "CheckInAdvance" + }, + { + "description": "Payment in advance by direct debit from the bank, equivalent to http://purl.org/goodrelations/v1#DirectDebit.", + "const": "DirectDebit" + }, + { + "description": "Payment in advance in some form of shop or kiosk for goods purchased online.", + "const": "InStorePrepay" + }, + { + "description": "Payment by billing via the phone carrier.", + "const": "PhoneCarrierPayment" + } + ] +} diff --git a/registry/schema-org/PaymentService.schema.json b/registry/schema-org/PaymentService.schema.json new file mode 100644 index 0000000..b4ee95a --- /dev/null +++ b/registry/schema-org/PaymentService.schema.json @@ -0,0 +1,17 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:PaymentService", + "title": "PaymentService", + "description": "A Service to transfer funds from a person or organization to a beneficiary person or organization.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:FinancialProduct" + }, + { + "description": "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. The following legacy values should be accepted:\n \\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\\nStructured values are recommended for newer payment methods.", + "$ref": "schema:PaymentMethod" + } + ] +} diff --git a/registry/schema-org/PaymentStatusType.schema.json b/registry/schema-org/PaymentStatusType.schema.json new file mode 100644 index 0000000..f5de1ec --- /dev/null +++ b/registry/schema-org/PaymentStatusType.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:PaymentStatusType", + "title": "PaymentStatusType", + "description": "A specific payment status. For example, PaymentDue, PaymentComplete, etc.", + "type": "object", + "allOf": [ + { + "description": "Lists or enumerations dealing with status types.", + "$ref": "schema:StatusEnumeration" + } + ] +} diff --git a/registry/schema-org/PeopleAudience.schema.json b/registry/schema-org/PeopleAudience.schema.json new file mode 100644 index 0000000..8256e60 --- /dev/null +++ b/registry/schema-org/PeopleAudience.schema.json @@ -0,0 +1,54 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:PeopleAudience", + "title": "PeopleAudience", + "description": "A set of characteristics belonging to people, e.g. who compose an item's target audience.", + "type": "object", + "allOf": [ + { + "description": "Intended audience for an item, i.e. the group for whom the item was created.", + "$ref": "schema:Audience" + } + ], + "properties": { + "healthCondition": { + "description": "Specifying the health condition(s) of a patient, medical study, or other target audience.", + "$ref": "schema:MedicalCondition" + }, + "requiredGender": { + "description": "Audiences defined by a person's gender.", + "type": "string" + }, + "requiredMaxAge": { + "description": "Audiences defined by a person's maximum age.", + "type": "integer" + }, + "requiredMinAge": { + "description": "Audiences defined by a person's minimum age.", + "type": "integer" + }, + "suggestedAge": { + "description": "The age or age range for the intended audience or person, for example 3-12 months for infants, 1-5 years for toddlers.", + "$ref": "schema:QuantitativeValue" + }, + "suggestedGender": { + "description": "The suggested gender of the intended person or audience, for example \"male\", \"female\", or \"unisex\".", + "anyOf": [{ "type": "string" }, { "$ref": "schema:GenderType" }] + }, + "suggestedMaxAge": { + "description": "Maximum recommended age in years for the audience or user.", + "type": "number" + }, + "suggestedMeasurement": { + "description": "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.", + "oneOf": [ + { "$ref": "schema:QuantitativeValue" }, + { "type": "array", "items": { "$ref": "schema:QuantitativeValue" } } + ] + }, + "suggestedMinAge": { + "description": "Minimum recommended age in years for the audience or user.", + "type": "number" + } + } +} diff --git a/registry/schema-org/PerformAction.schema.json b/registry/schema-org/PerformAction.schema.json new file mode 100644 index 0000000..f8d1a4a --- /dev/null +++ b/registry/schema-org/PerformAction.schema.json @@ -0,0 +1,22 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:PerformAction", + "title": "PerformAction", + "description": "The act of participating in performance arts.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:PlayAction" + } + ], + "properties": { + "entertainmentBusiness": { + "description": "A sub property of location. The entertainment business where the action occurred.", + "oneOf": [ + { "$ref": "schema:EntertainmentBusiness" }, + { "type": "array", "items": { "$ref": "schema:EntertainmentBusiness" } } + ] + } + } +} diff --git a/registry/schema-org/PerformanceRole.schema.json b/registry/schema-org/PerformanceRole.schema.json new file mode 100644 index 0000000..df272e2 --- /dev/null +++ b/registry/schema-org/PerformanceRole.schema.json @@ -0,0 +1,19 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:PerformanceRole", + "title": "PerformanceRole", + "description": "A PerformanceRole is a Role that some entity places with regard to a theatrical performance, e.g. in a Movie, TVSeries etc.", + "type": "object", + "allOf": [ + { + "description": "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).", + "$ref": "schema:Role" + } + ], + "properties": { + "characterName": { + "description": "The name of a character played in some acting or performing role, i.e. in a PerformanceRole.", + "type": "string" + } + } +} diff --git a/registry/schema-org/PerformingArtsTheater.schema.json b/registry/schema-org/PerformingArtsTheater.schema.json new file mode 100644 index 0000000..4dd1833 --- /dev/null +++ b/registry/schema-org/PerformingArtsTheater.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:PerformingArtsTheater", + "title": "PerformingArtsTheater", + "description": "A theater or other performing art center.", + "type": "object", + "allOf": [ + { + "description": "A public structure, such as a town hall or concert hall.", + "$ref": "schema:CivicStructure" + } + ] +} diff --git a/registry/schema-org/PerformingGroup.schema.json b/registry/schema-org/PerformingGroup.schema.json new file mode 100644 index 0000000..632de1f --- /dev/null +++ b/registry/schema-org/PerformingGroup.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:PerformingGroup", + "title": "PerformingGroup", + "description": "A performance group, such as a band, an orchestra, or a circus.", + "type": "object", + "allOf": [ + { + "description": "An organization such as a school, NGO, corporation, club, etc.", + "$ref": "schema:Organization" + } + ] +} diff --git a/registry/schema-org/Periodical.schema.json b/registry/schema-org/Periodical.schema.json new file mode 100644 index 0000000..7753f9a --- /dev/null +++ b/registry/schema-org/Periodical.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Periodical", + "title": "Periodical", + "description": "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).", + "type": "object", + "allOf": [ + { + "description": "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 ", + "$ref": "schema:CreativeWorkSeries" + } + ] +} diff --git a/registry/schema-org/Permit.schema.json b/registry/schema-org/Permit.schema.json new file mode 100644 index 0000000..e0d1045 --- /dev/null +++ b/registry/schema-org/Permit.schema.json @@ -0,0 +1,48 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Permit", + "title": "Permit", + "description": "A permit issued by an organization, e.g. a parking pass.", + "type": "object", + "allOf": [ + { + "description": "A utility class that serves as the umbrella for a number of 'intangible' things such as quantities, structured values, etc.", + "$ref": "schema:Intangible" + } + ], + "properties": { + "issuedBy": { + "description": "The organization issuing the item, for example a [[Permit]], [[Ticket]], or [[Certification]].", + "$ref": "schema:Organization" + }, + "issuedThrough": { + "description": "The service through which the permit was granted.", + "$ref": "schema:Service" + }, + "permitAudience": { + "description": "The target audience for this permit.", + "$ref": "schema:Audience" + }, + "validFor": { + "description": "The duration of validity of a permit or similar thing.", + "type": "string", + "$comment": "https://schema.org/Duration" + }, + "validFrom": { + "description": "The date when the item becomes valid.", + "anyOf": [ + { "type": "string", "format": "date" }, + { "type": "string", "format": "date-time" } + ] + }, + "validIn": { + "description": "The geographic area where the item is valid. Applies for example to a [[Permit]], a [[Certification]], or an [[EducationalOccupationalCredential]]. ", + "$ref": "schema:AdministrativeArea" + }, + "validUntil": { + "description": "The date when the item is no longer valid.", + "type": "string", + "format": "date" + } + } +} diff --git a/registry/schema-org/Person.schema.json b/registry/schema-org/Person.schema.json new file mode 100644 index 0000000..db784f7 --- /dev/null +++ b/registry/schema-org/Person.schema.json @@ -0,0 +1,557 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Person", + "title": "Person", + "description": "A person (alive, dead, undead, or fictional).", + "type": "object", + "allOf": [ + { "description": "The most generic type of item.", "$ref": "schema:Thing" } + ], + "properties": { + "additionalName": { + "description": "An additional name for a Person, can be used for a middle name.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "address": { + "description": "Physical address of the item.", + "anyOf": [{ "type": "string" }, { "$ref": "schema:PostalAddress" }] + }, + "affiliation": { + "description": "An organization that this person is affiliated with. For example, a school/university, a club, or a team.", + "oneOf": [ + { "$ref": "schema:Organization" }, + { "type": "array", "items": { "$ref": "schema:Organization" } } + ] + }, + "agentInteractionStatistic": { + "description": "The number of completed interactions for this entity, in a particular role (the 'agent'), in a particular action (indicated in the statistic), and in a particular context (i.e. interactionService).", + "$ref": "schema:InteractionCounter" + }, + "alumniOf": { + "description": "An organization that the person is an alumni of.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:EducationalOrganization" }, + { "$ref": "schema:Organization" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:EducationalOrganization" }, + { "$ref": "schema:Organization" } + ] + } + } + ] + }, + "award": { + "description": "An award won by or for this item.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "awards": { + "description": "Awards won by or for this item.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "birthDate": { + "description": "Date of birth.", + "type": "string", + "format": "date" + }, + "birthPlace": { + "description": "The place where the person was born.", + "$ref": "schema:Place" + }, + "brand": { + "description": "The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.", + "anyOf": [{ "$ref": "schema:Brand" }, { "$ref": "schema:Organization" }] + }, + "callSign": { + "description": "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.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "children": { + "description": "A child of the person.", + "oneOf": [ + { "$ref": "schema:Person" }, + { "type": "array", "items": { "$ref": "schema:Person" } } + ] + }, + "colleague": { + "description": "A colleague of the person.", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:Person" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:Person" } + ] + } + } + ] + }, + "colleagues": { + "description": "A colleague of the person.", + "oneOf": [ + { "$ref": "schema:Person" }, + { "type": "array", "items": { "$ref": "schema:Person" } } + ] + }, + "contactPoint": { + "description": "A contact point for a person or organization.", + "oneOf": [ + { "$ref": "schema:ContactPoint" }, + { "type": "array", "items": { "$ref": "schema:ContactPoint" } } + ] + }, + "contactPoints": { + "description": "A contact point for a person or organization.", + "oneOf": [ + { "$ref": "schema:ContactPoint" }, + { "type": "array", "items": { "$ref": "schema:ContactPoint" } } + ] + }, + "deathDate": { + "description": "Date of death.", + "type": "string", + "format": "date" + }, + "deathPlace": { + "description": "The place where the person died.", + "$ref": "schema:Place" + }, + "duns": { + "description": "The Dun & Bradstreet DUNS number for identifying an organization or business person.", + "type": "string" + }, + "email": { + "description": "Email address.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "familyName": { + "description": "Family name. In the U.S., the last name of a Person.", + "type": "string" + }, + "faxNumber": { "description": "The fax number.", "type": "string" }, + "follows": { + "description": "The most generic uni-directional social relation.", + "oneOf": [ + { "$ref": "schema:Person" }, + { "type": "array", "items": { "$ref": "schema:Person" } } + ] + }, + "funder": { + "description": "A person or organization that supports (sponsors) something through some kind of financial contribution.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + } + } + ] + }, + "funding": { + "description": "A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].", + "oneOf": [ + { "$ref": "schema:Grant" }, + { "type": "array", "items": { "$ref": "schema:Grant" } } + ] + }, + "gender": { + "description": "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 are not 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\".", + "anyOf": [{ "type": "string" }, { "$ref": "schema:GenderType" }] + }, + "givenName": { + "description": "Given name. In the U.S., the first name of a Person.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "globalLocationNumber": { + "description": "The [Global Location Number](http://www.gs1.org/gln) (GLN, sometimes also referred to as International Location Number or ILN) of the respective organization, person, or place. The GLN is a 13-digit number used to identify parties and physical locations.", + "type": "string" + }, + "hasCertification": { + "description": "Certification information about a product, organization, service, place, or person.", + "oneOf": [ + { "$ref": "schema:Certification" }, + { "type": "array", "items": { "$ref": "schema:Certification" } } + ] + }, + "hasCredential": { + "description": "A credential awarded to the Person or Organization.", + "oneOf": [ + { "$ref": "schema:EducationalOccupationalCredential" }, + { + "type": "array", + "items": { "$ref": "schema:EducationalOccupationalCredential" } + } + ] + }, + "hasOccupation": { + "description": "The Person's occupation. For past professions, use Role for expressing dates.", + "$ref": "schema:Occupation" + }, + "hasOfferCatalog": { + "description": "Indicates an OfferCatalog listing for this Organization, Person, or Service.", + "oneOf": [ + { "$ref": "schema:OfferCatalog" }, + { "type": "array", "items": { "$ref": "schema:OfferCatalog" } } + ] + }, + "hasPOS": { + "description": "Points-of-Sales operated by the organization or person.", + "oneOf": [ + { "$ref": "schema:Place" }, + { "type": "array", "items": { "$ref": "schema:Place" } } + ] + }, + "height": { + "description": "The height of the item.", + "anyOf": [ + { "type": "string", "$comment": "https://schema.org/Distance" }, + { "$ref": "schema:QuantitativeValue" } + ] + }, + "homeLocation": { + "description": "A contact location for a person's residence.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:ContactPoint" }, + { "$ref": "schema:Place" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:ContactPoint" }, + { "$ref": "schema:Place" } + ] + } + } + ] + }, + "honorificPrefix": { + "description": "An honorific prefix preceding a Person's name such as Dr/Mrs/Mr.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "honorificSuffix": { + "description": "An honorific suffix following a Person's name such as M.D./PhD/MSCSW.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "interactionStatistic": { + "description": "The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.", + "$ref": "schema:InteractionCounter" + }, + "isicV4": { + "description": "The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.", + "type": "string" + }, + "jobTitle": { + "description": "The job title of the person (for example, Financial Manager).", + "anyOf": [{ "type": "string" }, { "$ref": "schema:DefinedTerm" }] + }, + "knows": { + "description": "The most generic bi-directional social/work relation.", + "$ref": "schema:Person" + }, + "knowsAbout": { + "description": "Of a [[Person]], and less typically of an [[Organization]], to indicate a topic that is known about - suggesting possible expertise but not implying it. We do not distinguish skill levels here, or relate this to educational content, events, objectives or [[JobPosting]] descriptions.", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:Thing" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:Thing" } + ] + } + } + ] + }, + "knowsLanguage": { + "description": "Of a [[Person]], and less typically of an [[Organization]], to indicate a known language. We do not distinguish skill levels or reading/writing/speaking/signing here. Use language codes from the [IETF BCP 47 standard](http://tools.ietf.org/html/bcp47).", + "oneOf": [ + { "anyOf": [{ "type": "string" }, { "$ref": "schema:Language" }] }, + { + "type": "array", + "items": { + "anyOf": [{ "type": "string" }, { "$ref": "schema:Language" }] + } + } + ] + }, + "makesOffer": { + "description": "A pointer to products or services offered by the organization or person.", + "oneOf": [ + { "$ref": "schema:Offer" }, + { "type": "array", "items": { "$ref": "schema:Offer" } } + ] + }, + "memberOf": { + "description": "An Organization (or ProgramMembership) to which this Person or Organization belongs.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:MemberProgramTier" }, + { "$ref": "schema:Organization" }, + { "$ref": "schema:ProgramMembership" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:MemberProgramTier" }, + { "$ref": "schema:Organization" }, + { "$ref": "schema:ProgramMembership" } + ] + } + } + ] + }, + "naics": { + "description": "The North American Industry Classification System (NAICS) code for a particular organization or business person.", + "type": "string" + }, + "nationality": { + "description": "Nationality of the person.", + "oneOf": [ + { "$ref": "schema:Country" }, + { "type": "array", "items": { "$ref": "schema:Country" } } + ] + }, + "netWorth": { + "description": "The total financial value of the person as calculated by subtracting the total value of liabilities from the total value of assets.", + "anyOf": [ + { "$ref": "schema:MonetaryAmount" }, + { "$ref": "schema:PriceSpecification" } + ] + }, + "owns": { + "description": "Products owned by the organization or person.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:OwnershipInfo" }, + { "$ref": "schema:Product" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:OwnershipInfo" }, + { "$ref": "schema:Product" } + ] + } + } + ] + }, + "parent": { + "description": "A parent of this person.", + "oneOf": [ + { "$ref": "schema:Person" }, + { "type": "array", "items": { "$ref": "schema:Person" } } + ] + }, + "parents": { + "description": "A parents of the person.", + "oneOf": [ + { "$ref": "schema:Person" }, + { "type": "array", "items": { "$ref": "schema:Person" } } + ] + }, + "performerIn": { + "description": "Event that this person is a performer or participant in.", + "oneOf": [ + { "$ref": "schema:Event" }, + { "type": "array", "items": { "$ref": "schema:Event" } } + ] + }, + "pronouns": { + "description": "A short string listing or describing pronouns for a person. Typically the person concerned is the best authority as pronouns are a critical part of personal identity and expression. Publishers and consumers of this information are reminded to treat this data responsibly, take country-specific laws related to gender expression into account, and be wary of out-of-date data and drawing unwarranted inferences about the person being described.\n\nIn English, formulations such as \"they/them\", \"she/her\", and \"he/him\" are commonly used online and can also be used here. We do not intend to enumerate all possible micro-syntaxes in all languages. More structured and well-defined external values for pronouns can be referenced using the [[StructuredValue]] or [[DefinedTerm]] values.\n", + "oneOf": [ + { + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:DefinedTerm" }, + { "$ref": "schema:StructuredValue" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:DefinedTerm" }, + { "$ref": "schema:StructuredValue" } + ] + } + } + ] + }, + "publishingPrinciples": { + "description": "The publishingPrinciples property indicates (typically via [[URL]]) a document describing the editorial principles of an [[Organization]] (or individual, e.g. a [[Person]] writing a blog) that relate to their activities as a publisher, e.g. ethics or diversity policies. When applied to a [[CreativeWork]] (e.g. [[NewsArticle]]) the principles are those of the party primarily responsible for the creation of the [[CreativeWork]].\n\nWhile such policies are most typically expressed in natural language, sometimes related information (e.g. indicating a [[funder]]) can be expressed using schema.org terminology.\n", + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:CreativeWork" } + ] + }, + "relatedTo": { + "description": "The most generic familial relation.", + "$ref": "schema:Person" + }, + "seeks": { + "description": "A pointer to products or services sought by the organization or person (demand).", + "oneOf": [ + { "$ref": "schema:Demand" }, + { "type": "array", "items": { "$ref": "schema:Demand" } } + ] + }, + "sibling": { + "description": "A sibling of the person.", + "oneOf": [ + { "$ref": "schema:Person" }, + { "type": "array", "items": { "$ref": "schema:Person" } } + ] + }, + "siblings": { + "description": "A sibling of the person.", + "oneOf": [ + { "$ref": "schema:Person" }, + { "type": "array", "items": { "$ref": "schema:Person" } } + ] + }, + "skills": { + "description": "A statement of knowledge, skill, ability, task or any other assertion expressing a competency that is either claimed by a person, an organization or desired or required to fulfill a role or to work in an occupation.", + "oneOf": [ + { "anyOf": [{ "type": "string" }, { "$ref": "schema:DefinedTerm" }] }, + { + "type": "array", + "items": { + "anyOf": [{ "type": "string" }, { "$ref": "schema:DefinedTerm" }] + } + } + ] + }, + "sponsor": { + "description": "A person or organization that supports a thing through a pledge, promise, or financial contribution. E.g. a sponsor of a Medical Study or a corporate sponsor of an event.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + } + } + ] + }, + "spouse": { + "description": "The person's spouse.", + "$ref": "schema:Person" + }, + "taxID": { + "description": "The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.", + "type": "string" + }, + "telephone": { "description": "The telephone number.", "type": "string" }, + "vatID": { + "description": "The Value-added Tax ID of the organization or person.", + "type": "string" + }, + "weight": { + "description": "The weight of the product or person.", + "anyOf": [ + { "type": "string", "$comment": "https://schema.org/Mass" }, + { "$ref": "schema:QuantitativeValue" } + ] + }, + "workLocation": { + "description": "A contact location for a person's place of work.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:ContactPoint" }, + { "$ref": "schema:Place" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:ContactPoint" }, + { "$ref": "schema:Place" } + ] + } + } + ] + }, + "worksFor": { + "description": "Organizations that the person works for.", + "oneOf": [ + { "$ref": "schema:Organization" }, + { "type": "array", "items": { "$ref": "schema:Organization" } } + ] + } + } +} diff --git a/registry/schema-org/PetStore.schema.json b/registry/schema-org/PetStore.schema.json new file mode 100644 index 0000000..caa4a2b --- /dev/null +++ b/registry/schema-org/PetStore.schema.json @@ -0,0 +1,8 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:PetStore", + "title": "PetStore", + "description": "A pet store.", + "type": "object", + "allOf": [{ "description": "A retail good store.", "$ref": "schema:Store" }] +} diff --git a/registry/schema-org/Pharmacy.schema.json b/registry/schema-org/Pharmacy.schema.json new file mode 100644 index 0000000..f83e8dc --- /dev/null +++ b/registry/schema-org/Pharmacy.schema.json @@ -0,0 +1,17 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Pharmacy", + "title": "Pharmacy", + "description": "A pharmacy or drugstore.", + "type": "object", + "allOf": [ + { + "description": "A particular physical or virtual business of an organization for medical purposes. Examples of MedicalBusiness include different businesses run by health professionals.", + "$ref": "schema:MedicalBusiness" + }, + { + "description": "A medical organization (physical or not), such as hospital, institution or clinic.", + "$ref": "schema:MedicalOrganization" + } + ] +} diff --git a/registry/schema-org/Photograph.schema.json b/registry/schema-org/Photograph.schema.json new file mode 100644 index 0000000..46b5f33 --- /dev/null +++ b/registry/schema-org/Photograph.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Photograph", + "title": "Photograph", + "description": "A photograph.", + "type": "object", + "allOf": [ + { + "description": "The most generic kind of creative work, including books, movies, photographs, software programs, etc.", + "$ref": "schema:CreativeWork" + } + ] +} diff --git a/registry/schema-org/PhotographAction.schema.json b/registry/schema-org/PhotographAction.schema.json new file mode 100644 index 0000000..f5a68cb --- /dev/null +++ b/registry/schema-org/PhotographAction.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:PhotographAction", + "title": "PhotographAction", + "description": "The act of capturing still images of objects using a camera.", + "type": "object", + "allOf": [ + { + "description": "The act of deliberately creating/producing/generating/building a result out of the agent.", + "$ref": "schema:CreateAction" + } + ] +} diff --git a/registry/schema-org/PhysicalActivity.schema.json b/registry/schema-org/PhysicalActivity.schema.json new file mode 100644 index 0000000..1aaa0bb --- /dev/null +++ b/registry/schema-org/PhysicalActivity.schema.json @@ -0,0 +1,60 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:PhysicalActivity", + "title": "PhysicalActivity", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "A process of care involving exercise, changes to diet, fitness routines, and other lifestyle changes aimed at improving a health condition.", + "$ref": "schema:LifestyleModification" + } + ], + "properties": { + "associatedAnatomy": { + "description": "The anatomy of the underlying organ system or structures associated with this entity.", + "anyOf": [ + { "$ref": "schema:AnatomicalStructure" }, + { "$ref": "schema:AnatomicalSystem" }, + { "$ref": "schema:SuperficialAnatomy" } + ] + }, + "category": { + "description": "A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:CategoryCode" }, + { "$ref": "schema:PhysicalActivityCategory" }, + { "$ref": "schema:Thing" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:CategoryCode" }, + { "$ref": "schema:PhysicalActivityCategory" }, + { "$ref": "schema:Thing" } + ] + } + } + ] + }, + "epidemiology": { + "description": "The characteristics of associated patients, such as age, gender, race etc.", + "type": "string" + }, + "pathophysiology": { + "description": "Changes in the normal mechanical, physical, and biochemical functions that are associated with this activity or condition.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + } + } +} diff --git a/registry/schema-org/PhysicalActivityCategory.schema.json b/registry/schema-org/PhysicalActivityCategory.schema.json new file mode 100644 index 0000000..c863e67 --- /dev/null +++ b/registry/schema-org/PhysicalActivityCategory.schema.json @@ -0,0 +1,37 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:PhysicalActivityCategory", + "title": "PhysicalActivityCategory", + "description": "Categories of physical activity, organized by physiologic classification.", + "type": "string", + "oneOf": [ + { + "description": "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.", + "const": "AerobicActivity" + }, + { + "description": "Physical activity that is of high-intensity which utilizes the anaerobic metabolism of the body.", + "const": "AnaerobicActivity" + }, + { + "description": "Physical activity that is engaged to help maintain posture and balance.", + "const": "Balance" + }, + { + "description": "Physical activity that is engaged in to improve joint and muscle flexibility.", + "const": "Flexibility" + }, + { + "description": "Any physical activity engaged in for recreational purposes. Examples may include ballroom dancing, roller skating, canoeing, fishing, etc.", + "const": "LeisureTimeActivity" + }, + { + "description": "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.", + "const": "OccupationalActivity" + }, + { + "description": "Physical activity that is engaged in to improve muscle and bone strength. Also referred to as resistance training.", + "const": "StrengthTraining" + } + ] +} diff --git a/registry/schema-org/PhysicalExam.schema.json b/registry/schema-org/PhysicalExam.schema.json new file mode 100644 index 0000000..077f21a --- /dev/null +++ b/registry/schema-org/PhysicalExam.schema.json @@ -0,0 +1,17 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:PhysicalExam", + "title": "PhysicalExam", + "description": "A type of physical examination of a patient performed by a physician. ", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:MedicalEnumeration" + }, + { + "description": "A process of care used in either a diagnostic, therapeutic, preventive or palliative capacity that relies on invasive (surgical), non-invasive, or other techniques.", + "$ref": "schema:MedicalProcedure" + } + ] +} diff --git a/registry/schema-org/PhysicalTherapy.schema.json b/registry/schema-org/PhysicalTherapy.schema.json new file mode 100644 index 0000000..a885e37 --- /dev/null +++ b/registry/schema-org/PhysicalTherapy.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:PhysicalTherapy", + "title": "PhysicalTherapy", + "description": "A process of progressive physical care and rehabilitation aimed at improving a health condition.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:MedicalTherapy" + } + ] +} diff --git a/registry/schema-org/Physician.schema.json b/registry/schema-org/Physician.schema.json new file mode 100644 index 0000000..a52f361 --- /dev/null +++ b/registry/schema-org/Physician.schema.json @@ -0,0 +1,74 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Physician", + "title": "Physician", + "description": "An individual physician or a physician's office considered as a [[MedicalOrganization]].", + "type": "object", + "allOf": [ + { + "description": "A particular physical or virtual business of an organization for medical purposes. Examples of MedicalBusiness include different businesses run by health professionals.", + "$ref": "schema:MedicalBusiness" + }, + { + "description": "A medical organization (physical or not), such as hospital, institution or clinic.", + "$ref": "schema:MedicalOrganization" + } + ], + "properties": { + "availableService": { + "description": "A medical service available from this provider.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:MedicalProcedure" }, + { "$ref": "schema:MedicalTest" }, + { "$ref": "schema:MedicalTherapy" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:MedicalProcedure" }, + { "$ref": "schema:MedicalTest" }, + { "$ref": "schema:MedicalTherapy" } + ] + } + } + ] + }, + "hospitalAffiliation": { + "description": "A hospital with which the physician or office is affiliated.", + "oneOf": [ + { "$ref": "schema:Hospital" }, + { "type": "array", "items": { "$ref": "schema:Hospital" } } + ] + }, + "medicalSpecialty": { + "description": "A medical specialty of the provider.", + "oneOf": [ + { "$ref": "schema:MedicalSpecialty" }, + { "type": "array", "items": { "$ref": "schema:MedicalSpecialty" } } + ] + }, + "occupationalCategory": { + "description": "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.\\n\nNote: for historical reasons, any textual label and formal code provided as a literal may be assumed to be from O*NET-SOC.", + "oneOf": [ + { "anyOf": [{ "type": "string" }, { "$ref": "schema:CategoryCode" }] }, + { + "type": "array", + "items": { + "anyOf": [{ "type": "string" }, { "$ref": "schema:CategoryCode" }] + } + } + ] + }, + "usNPI": { + "description": "A National Provider Identifier (NPI) \n is a unique 10-digit identification number issued to health care providers in the United States by the Centers for Medicare and Medicaid Services.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + } + } +} diff --git a/registry/schema-org/PhysiciansOffice.schema.json b/registry/schema-org/PhysiciansOffice.schema.json new file mode 100644 index 0000000..cc44e53 --- /dev/null +++ b/registry/schema-org/PhysiciansOffice.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:PhysiciansOffice", + "title": "PhysiciansOffice", + "description": "A doctor's office or clinic.", + "type": "object", + "allOf": [ + { + "description": "An individual physician or a physician's office considered as a [[MedicalOrganization]].", + "$ref": "schema:Physician" + } + ] +} diff --git a/registry/schema-org/Place.schema.json b/registry/schema-org/Place.schema.json new file mode 100644 index 0000000..190f75b --- /dev/null +++ b/registry/schema-org/Place.schema.json @@ -0,0 +1,465 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Place", + "title": "Place", + "description": "Entities that have a somewhat fixed, physical extension.", + "type": "object", + "allOf": [ + { "description": "The most generic type of item.", "$ref": "schema:Thing" } + ], + "properties": { + "additionalProperty": { + "description": "A property-value pair representing an additional characteristic of the entity, e.g. a product feature or another characteristic for which there is no matching property in schema.org.\\n\\nNote: Publishers should be aware that applications designed to use specific schema.org properties (e.g. https://schema.org/width, https://schema.org/color, https://schema.org/gtin13, ...) will typically expect such data to be provided using those properties, rather than using the generic property/value mechanism.\n", + "oneOf": [ + { "$ref": "schema:PropertyValue" }, + { "type": "array", "items": { "$ref": "schema:PropertyValue" } } + ] + }, + "address": { + "description": "Physical address of the item.", + "anyOf": [{ "type": "string" }, { "$ref": "schema:PostalAddress" }] + }, + "aggregateRating": { + "description": "The overall rating, based on a collection of reviews or ratings, of the item.", + "$ref": "schema:AggregateRating" + }, + "amenityFeature": { + "description": "An amenity feature (e.g. a characteristic or service) of the Accommodation. This generic property does not make a statement about whether the feature is included in an offer for the main accommodation or available at extra costs.", + "oneOf": [ + { "$ref": "schema:LocationFeatureSpecification" }, + { + "type": "array", + "items": { "$ref": "schema:LocationFeatureSpecification" } + } + ] + }, + "branchCode": { + "description": "A short textual code (also called \"store code\") that uniquely identifies a place of business. The code is typically assigned by the parentOrganization and used in structured URLs.\\n\\nFor example, in the URL http://www.starbucks.co.uk/store-locator/etc/detail/3047 the code \"3047\" is a branchCode for a particular branch.\n ", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "containedIn": { + "description": "The basic containment relation between a place and one that contains it.", + "$ref": "schema:Place" + }, + "containedInPlace": { + "description": "The basic containment relation between a place and one that contains it.", + "$ref": "schema:Place" + }, + "containsPlace": { + "description": "The basic containment relation between a place and another that it contains.", + "$ref": "schema:Place" + }, + "event": { + "description": "Upcoming or past event associated with this place, organization, or action.", + "oneOf": [ + { "$ref": "schema:Event" }, + { "type": "array", "items": { "$ref": "schema:Event" } } + ] + }, + "events": { + "description": "Upcoming or past events associated with this place or organization.", + "oneOf": [ + { "$ref": "schema:Event" }, + { "type": "array", "items": { "$ref": "schema:Event" } } + ] + }, + "faxNumber": { "description": "The fax number.", "type": "string" }, + "geo": { + "description": "The geo coordinates of the place.", + "anyOf": [ + { "$ref": "schema:GeoCoordinates" }, + { "$ref": "schema:GeoShape" } + ] + }, + "geoContains": { + "description": "Represents a relationship between two geometries (or the places they represent), relating a containing geometry to a contained geometry. \"a contains b iff no points of b lie in the exterior of a, and at least one point of the interior of b lies in the interior of a\". As defined in [DE-9IM](https://en.wikipedia.org/wiki/DE-9IM).", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:GeospatialGeometry" }, + { "$ref": "schema:Place" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:GeospatialGeometry" }, + { "$ref": "schema:Place" } + ] + } + } + ] + }, + "geoCoveredBy": { + "description": "Represents a relationship between two geometries (or the places they represent), relating a geometry to another that covers it. As defined in [DE-9IM](https://en.wikipedia.org/wiki/DE-9IM).", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:GeospatialGeometry" }, + { "$ref": "schema:Place" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:GeospatialGeometry" }, + { "$ref": "schema:Place" } + ] + } + } + ] + }, + "geoCovers": { + "description": "Represents a relationship between two geometries (or the places they represent), relating a covering geometry to a covered geometry. \"Every point of b is a point of (the interior or boundary of) a\". As defined in [DE-9IM](https://en.wikipedia.org/wiki/DE-9IM).", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:GeospatialGeometry" }, + { "$ref": "schema:Place" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:GeospatialGeometry" }, + { "$ref": "schema:Place" } + ] + } + } + ] + }, + "geoCrosses": { + "description": "Represents a relationship between two geometries (or the places they represent), relating a geometry to another that crosses it: \"a crosses b: they have some but not all interior points in common, and the dimension of the intersection is less than that of at least one of them\". As defined in [DE-9IM](https://en.wikipedia.org/wiki/DE-9IM).", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:GeospatialGeometry" }, + { "$ref": "schema:Place" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:GeospatialGeometry" }, + { "$ref": "schema:Place" } + ] + } + } + ] + }, + "geoDisjoint": { + "description": "Represents spatial relations in which two geometries (or the places they represent) are topologically disjoint: \"they have no point in common. They form a set of disconnected geometries.\" (A symmetric relationship, as defined in [DE-9IM](https://en.wikipedia.org/wiki/DE-9IM).)", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:GeospatialGeometry" }, + { "$ref": "schema:Place" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:GeospatialGeometry" }, + { "$ref": "schema:Place" } + ] + } + } + ] + }, + "geoEquals": { + "description": "Represents spatial relations in which two geometries (or the places they represent) are topologically equal, as defined in [DE-9IM](https://en.wikipedia.org/wiki/DE-9IM). \"Two geometries are topologically equal if their interiors intersect and no part of the interior or boundary of one geometry intersects the exterior of the other\" (a symmetric relationship).", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:GeospatialGeometry" }, + { "$ref": "schema:Place" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:GeospatialGeometry" }, + { "$ref": "schema:Place" } + ] + } + } + ] + }, + "geoIntersects": { + "description": "Represents spatial relations in which two geometries (or the places they represent) have at least one point in common. As defined in [DE-9IM](https://en.wikipedia.org/wiki/DE-9IM).", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:GeospatialGeometry" }, + { "$ref": "schema:Place" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:GeospatialGeometry" }, + { "$ref": "schema:Place" } + ] + } + } + ] + }, + "geoOverlaps": { + "description": "Represents a relationship between two geometries (or the places they represent), relating a geometry to another that geospatially overlaps it, i.e. they have some but not all points in common. As defined in [DE-9IM](https://en.wikipedia.org/wiki/DE-9IM).", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:GeospatialGeometry" }, + { "$ref": "schema:Place" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:GeospatialGeometry" }, + { "$ref": "schema:Place" } + ] + } + } + ] + }, + "geoTouches": { + "description": "Represents spatial relations in which two geometries (or the places they represent) touch: \"they have at least one boundary point in common, but no interior points.\" (A symmetric relationship, as defined in [DE-9IM](https://en.wikipedia.org/wiki/DE-9IM).)", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:GeospatialGeometry" }, + { "$ref": "schema:Place" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:GeospatialGeometry" }, + { "$ref": "schema:Place" } + ] + } + } + ] + }, + "geoWithin": { + "description": "Represents a relationship between two geometries (or the places they represent), relating a geometry to one that contains it, i.e. it is inside (i.e. within) its interior. As defined in [DE-9IM](https://en.wikipedia.org/wiki/DE-9IM).", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:GeospatialGeometry" }, + { "$ref": "schema:Place" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:GeospatialGeometry" }, + { "$ref": "schema:Place" } + ] + } + } + ] + }, + "globalLocationNumber": { + "description": "The [Global Location Number](http://www.gs1.org/gln) (GLN, sometimes also referred to as International Location Number or ILN) of the respective organization, person, or place. The GLN is a 13-digit number used to identify parties and physical locations.", + "type": "string" + }, + "hasCertification": { + "description": "Certification information about a product, organization, service, place, or person.", + "oneOf": [ + { "$ref": "schema:Certification" }, + { "type": "array", "items": { "$ref": "schema:Certification" } } + ] + }, + "hasDriveThroughService": { + "description": "Indicates whether some facility (e.g. [[FoodEstablishment]], [[CovidTestingFacility]]) offers a service that can be used by driving through in a car. In the case of [[CovidTestingFacility]] such facilities could potentially help with social distancing from other potentially-infected users.", + "type": "boolean" + }, + "hasGS1DigitalLink": { + "description": "The GS1 digital link associated with the object. This URL should conform to the particular requirements of digital links. The link should only contain the Application Identifiers (AIs) that are relevant for the entity being annotated, for instance a [[Product]] or an [[Organization]], and for the correct granularity. In particular, for products:A Digital Link that contains a serial number (AI 21) should only be present on instances of [[IndividualProduct]]A Digital Link that contains a lot number (AI 10) should be annotated as [[SomeProduct]] if only products from that lot are sold, or [[IndividualProduct]] if there is only a specific product.A Digital Link that contains a global model number (AI 8013) should be attached to a [[Product]] or a [[ProductModel]]. Other item types should be adapted similarly.", + "type": "string", + "format": "uri" + }, + "hasMap": { + "description": "A URL to a map of the place.", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:Map" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:Map" } + ] + } + } + ] + }, + "isAccessibleForFree": { + "description": "A flag to signal that the item, event, or place is accessible for free.", + "type": "boolean" + }, + "isicV4": { + "description": "The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.", + "type": "string" + }, + "keywords": { + "description": "Keywords or tags used to describe some item. Multiple textual entries in a keywords list are typically delimited by commas, or by repeating the property.", + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:DefinedTerm" } + ] + }, + "latitude": { + "description": "The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).", + "anyOf": [{ "type": "number" }, { "type": "string" }] + }, + "logo": { + "description": "An associated logo.", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:ImageObject" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:ImageObject" } + ] + } + } + ] + }, + "longitude": { + "description": "The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).", + "anyOf": [{ "type": "number" }, { "type": "string" }] + }, + "map": { + "description": "A URL to a map of the place.", + "oneOf": [ + { "type": "string", "format": "uri" }, + { "type": "array", "items": { "type": "string", "format": "uri" } } + ] + }, + "maps": { + "description": "A URL to a map of the place.", + "oneOf": [ + { "type": "string", "format": "uri" }, + { "type": "array", "items": { "type": "string", "format": "uri" } } + ] + }, + "maximumAttendeeCapacity": { + "description": "The total number of individuals that may attend an event or venue.", + "type": "integer" + }, + "openingHoursSpecification": { + "description": "The opening hours of a certain place.", + "$ref": "schema:OpeningHoursSpecification" + }, + "photo": { + "description": "A photograph of this place.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:ImageObject" }, + { "$ref": "schema:Photograph" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:ImageObject" }, + { "$ref": "schema:Photograph" } + ] + } + } + ] + }, + "photos": { + "description": "Photographs of this place.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:ImageObject" }, + { "$ref": "schema:Photograph" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:ImageObject" }, + { "$ref": "schema:Photograph" } + ] + } + } + ] + }, + "publicAccess": { + "description": "A flag to signal that the [[Place]] is open to public visitors. If this property is omitted there is no assumed default boolean value.", + "type": "boolean" + }, + "review": { + "description": "A review of the item.", + "oneOf": [ + { "$ref": "schema:Review" }, + { "type": "array", "items": { "$ref": "schema:Review" } } + ] + }, + "reviews": { + "description": "Review of the item.", + "oneOf": [ + { "$ref": "schema:Review" }, + { "type": "array", "items": { "$ref": "schema:Review" } } + ] + }, + "slogan": { + "description": "A slogan or motto associated with the item.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "smokingAllowed": { + "description": "Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.", + "type": "boolean" + }, + "specialOpeningHoursSpecification": { + "description": "The special opening hours of a certain place.\\n\\nUse this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]].\n ", + "$ref": "schema:OpeningHoursSpecification" + }, + "telephone": { "description": "The telephone number.", "type": "string" }, + "tourBookingPage": { + "description": "A page providing information on how to book a tour of some [[Place]], such as an [[Accommodation]] or [[ApartmentComplex]] in a real estate setting, as well as other kinds of tours as appropriate.", + "oneOf": [ + { "type": "string", "format": "uri" }, + { "type": "array", "items": { "type": "string", "format": "uri" } } + ] + } + } +} diff --git a/registry/schema-org/PlaceOfWorship.schema.json b/registry/schema-org/PlaceOfWorship.schema.json new file mode 100644 index 0000000..3f96284 --- /dev/null +++ b/registry/schema-org/PlaceOfWorship.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:PlaceOfWorship", + "title": "PlaceOfWorship", + "description": "Place of worship, such as a church, synagogue, or mosque.", + "type": "object", + "allOf": [ + { + "description": "A public structure, such as a town hall or concert hall.", + "$ref": "schema:CivicStructure" + } + ] +} diff --git a/registry/schema-org/PlanAction.schema.json b/registry/schema-org/PlanAction.schema.json new file mode 100644 index 0000000..5e57d34 --- /dev/null +++ b/registry/schema-org/PlanAction.schema.json @@ -0,0 +1,22 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:PlanAction", + "title": "PlanAction", + "description": "The act of planning the execution of an event/task/action/reservation/plan to a future date.", + "type": "object", + "allOf": [ + { + "description": "The act of manipulating/administering/supervising/controlling one or more objects.", + "$ref": "schema:OrganizeAction" + } + ], + "properties": { + "scheduledTime": { + "description": "The time the object is scheduled to.", + "anyOf": [ + { "type": "string", "format": "date" }, + { "type": "string", "format": "date-time" } + ] + } + } +} diff --git a/registry/schema-org/Play.schema.json b/registry/schema-org/Play.schema.json new file mode 100644 index 0000000..a171817 --- /dev/null +++ b/registry/schema-org/Play.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Play", + "title": "Play", + "description": "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]].", + "type": "object", + "allOf": [ + { + "description": "The most generic kind of creative work, including books, movies, photographs, software programs, etc.", + "$ref": "schema:CreativeWork" + } + ] +} diff --git a/registry/schema-org/PlayAction.schema.json b/registry/schema-org/PlayAction.schema.json new file mode 100644 index 0000000..e42a815 --- /dev/null +++ b/registry/schema-org/PlayAction.schema.json @@ -0,0 +1,26 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:PlayAction", + "title": "PlayAction", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "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).", + "$ref": "schema:Action" + } + ], + "properties": { + "audience": { + "description": "An intended audience, i.e. a group for whom something was created.", + "$ref": "schema:Audience" + }, + "event": { + "description": "Upcoming or past event associated with this place, organization, or action.", + "oneOf": [ + { "$ref": "schema:Event" }, + { "type": "array", "items": { "$ref": "schema:Event" } } + ] + } + } +} diff --git a/registry/schema-org/PlayGameAction.schema.json b/registry/schema-org/PlayGameAction.schema.json new file mode 100644 index 0000000..1ae14e0 --- /dev/null +++ b/registry/schema-org/PlayGameAction.schema.json @@ -0,0 +1,35 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:PlayGameAction", + "title": "PlayGameAction", + "description": "The act of playing a video game.", + "type": "object", + "allOf": [ + { + "description": "The act of ingesting information/resources/food.", + "$ref": "schema:ConsumeAction" + } + ], + "properties": { + "gameAvailabilityType": { + "description": "Indicates the availability type of the game content associated with this action, such as whether it is a full version or a demo.", + "oneOf": [ + { + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:GameAvailabilityEnumeration" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:GameAvailabilityEnumeration" } + ] + } + } + ] + } + } +} diff --git a/registry/schema-org/Playground.schema.json b/registry/schema-org/Playground.schema.json new file mode 100644 index 0000000..689f701 --- /dev/null +++ b/registry/schema-org/Playground.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Playground", + "title": "Playground", + "description": "A playground.", + "type": "object", + "allOf": [ + { + "description": "A public structure, such as a town hall or concert hall.", + "$ref": "schema:CivicStructure" + } + ] +} diff --git a/registry/schema-org/Plumber.schema.json b/registry/schema-org/Plumber.schema.json new file mode 100644 index 0000000..f1dacb5 --- /dev/null +++ b/registry/schema-org/Plumber.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Plumber", + "title": "Plumber", + "description": "A plumbing service.", + "type": "object", + "allOf": [ + { + "description": "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).", + "$ref": "schema:HomeAndConstructionBusiness" + } + ] +} diff --git a/registry/schema-org/PodcastEpisode.schema.json b/registry/schema-org/PodcastEpisode.schema.json new file mode 100644 index 0000000..fa1ea8a --- /dev/null +++ b/registry/schema-org/PodcastEpisode.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:PodcastEpisode", + "title": "PodcastEpisode", + "description": "A single episode of a podcast series.", + "type": "object", + "allOf": [ + { + "description": "A media episode (e.g. TV, radio, video game) which can be part of a series or season.", + "$ref": "schema:Episode" + } + ] +} diff --git a/registry/schema-org/PodcastSeason.schema.json b/registry/schema-org/PodcastSeason.schema.json new file mode 100644 index 0000000..679314a --- /dev/null +++ b/registry/schema-org/PodcastSeason.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:PodcastSeason", + "title": "PodcastSeason", + "description": "A single season of a podcast. Many podcasts do not break down into separate seasons. In that case, PodcastSeries should be used.", + "type": "object", + "allOf": [ + { + "description": "A media season, e.g. TV, radio, video game etc.", + "$ref": "schema:CreativeWorkSeason" + } + ] +} diff --git a/registry/schema-org/PodcastSeries.schema.json b/registry/schema-org/PodcastSeries.schema.json new file mode 100644 index 0000000..cb7e14a --- /dev/null +++ b/registry/schema-org/PodcastSeries.schema.json @@ -0,0 +1,42 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:PodcastSeries", + "title": "PodcastSeries", + "description": "A podcast is an episodic series of digital audio or video files which a user can download and listen to.", + "type": "object", + "allOf": [ + { + "description": "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 ", + "$ref": "schema:CreativeWorkSeries" + } + ], + "properties": { + "actor": { + "description": "An actor (individual or a group), 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.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:PerformingGroup" }, + { "$ref": "schema:Person" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:PerformingGroup" }, + { "$ref": "schema:Person" } + ] + } + } + ] + }, + "webFeed": { + "description": "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.", + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:DataFeed" } + ] + } + } +} diff --git a/registry/schema-org/PoliceStation.schema.json b/registry/schema-org/PoliceStation.schema.json new file mode 100644 index 0000000..fa15510 --- /dev/null +++ b/registry/schema-org/PoliceStation.schema.json @@ -0,0 +1,17 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:PoliceStation", + "title": "PoliceStation", + "description": "A police station.", + "type": "object", + "allOf": [ + { + "description": "A public structure, such as a town hall or concert hall.", + "$ref": "schema:CivicStructure" + }, + { + "description": "An emergency service, such as a fire station or ER.", + "$ref": "schema:EmergencyService" + } + ] +} diff --git a/registry/schema-org/PoliticalParty.schema.json b/registry/schema-org/PoliticalParty.schema.json new file mode 100644 index 0000000..e896fb9 --- /dev/null +++ b/registry/schema-org/PoliticalParty.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:PoliticalParty", + "title": "PoliticalParty", + "description": "Organization: Political Party.", + "type": "object", + "allOf": [ + { + "description": "An organization such as a school, NGO, corporation, club, etc.", + "$ref": "schema:Organization" + } + ] +} diff --git a/registry/schema-org/Pond.schema.json b/registry/schema-org/Pond.schema.json new file mode 100644 index 0000000..282ec31 --- /dev/null +++ b/registry/schema-org/Pond.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Pond", + "title": "Pond", + "description": "A pond.", + "type": "object", + "allOf": [ + { + "description": "A body of water, such as a sea, ocean, or lake.", + "$ref": "schema:BodyOfWater" + } + ] +} diff --git a/registry/schema-org/PostOffice.schema.json b/registry/schema-org/PostOffice.schema.json new file mode 100644 index 0000000..f51d14e --- /dev/null +++ b/registry/schema-org/PostOffice.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:PostOffice", + "title": "PostOffice", + "description": "A post office.", + "type": "object", + "allOf": [ + { + "description": "A government office—for example, an IRS or DMV office.", + "$ref": "schema:GovernmentOffice" + } + ] +} diff --git a/registry/schema-org/PostalAddress.schema.json b/registry/schema-org/PostalAddress.schema.json new file mode 100644 index 0000000..169ff2e --- /dev/null +++ b/registry/schema-org/PostalAddress.schema.json @@ -0,0 +1,46 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:PostalAddress", + "title": "PostalAddress", + "description": "The mailing address.", + "type": "object", + "allOf": [ + { + "description": "A contact point—for example, a Customer Complaints department.", + "$ref": "schema:ContactPoint" + } + ], + "properties": { + "addressCountry": { + "description": "The country. Recommended to be in 2-letter [ISO 3166-1 alpha-2](http://en.wikipedia.org/wiki/ISO_3166-1) format, for example \"US\". For backward compatibility, a 3-letter [ISO 3166-1 alpha-3](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) country code such as \"SGP\" or a full country name such as \"Singapore\" can also be used.", + "anyOf": [{ "type": "string" }, { "$ref": "schema:Country" }] + }, + "addressLocality": { + "description": "The locality in which the street address is, and which is in the region. For example, Mountain View.", + "type": "string" + }, + "addressRegion": { + "description": "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).", + "type": "string" + }, + "extendedAddress": { + "description": "An address extension such as an apartment number, C/O or alternative name.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "postOfficeBoxNumber": { + "description": "The post office box number for PO box addresses.", + "type": "string" + }, + "postalCode": { + "description": "The postal code. For example, 94043.", + "type": "string" + }, + "streetAddress": { + "description": "The street address. For example, 1600 Amphitheatre Pkwy.", + "type": "string" + } + } +} diff --git a/registry/schema-org/PostalCodeRangeSpecification.schema.json b/registry/schema-org/PostalCodeRangeSpecification.schema.json new file mode 100644 index 0000000..9bdbd36 --- /dev/null +++ b/registry/schema-org/PostalCodeRangeSpecification.schema.json @@ -0,0 +1,29 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:PostalCodeRangeSpecification", + "title": "PostalCodeRangeSpecification", + "description": "Indicates a range of postal codes, usually defined as the set of valid codes between [[postalCodeBegin]] and [[postalCodeEnd]], inclusively.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:StructuredValue" + } + ], + "properties": { + "postalCodeBegin": { + "description": "First postal code in a range (included).", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "postalCodeEnd": { + "description": "Last postal code in the range (included). Needs to be after [[postalCodeBegin]].", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + } + } +} diff --git a/registry/schema-org/Poster.schema.json b/registry/schema-org/Poster.schema.json new file mode 100644 index 0000000..5604aae --- /dev/null +++ b/registry/schema-org/Poster.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Poster", + "title": "Poster", + "description": "A large, usually printed placard, bill, or announcement, often illustrated, that is posted to advertise or publicize something.", + "type": "object", + "allOf": [ + { + "description": "The most generic kind of creative work, including books, movies, photographs, software programs, etc.", + "$ref": "schema:CreativeWork" + } + ] +} diff --git a/registry/schema-org/PreOrderAction.schema.json b/registry/schema-org/PreOrderAction.schema.json new file mode 100644 index 0000000..9f3ba47 --- /dev/null +++ b/registry/schema-org/PreOrderAction.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:PreOrderAction", + "title": "PreOrderAction", + "description": "An agent orders a (not yet released) object/product/service to be delivered/sent.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:TradeAction" + } + ] +} diff --git a/registry/schema-org/PrependAction.schema.json b/registry/schema-org/PrependAction.schema.json new file mode 100644 index 0000000..dd3f263 --- /dev/null +++ b/registry/schema-org/PrependAction.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:PrependAction", + "title": "PrependAction", + "description": "The act of inserting at the beginning if an ordered collection.", + "type": "object", + "allOf": [ + { + "description": "The act of adding at a specific location in an ordered collection.", + "$ref": "schema:InsertAction" + } + ] +} diff --git a/registry/schema-org/Preschool.schema.json b/registry/schema-org/Preschool.schema.json new file mode 100644 index 0000000..97d7e3b --- /dev/null +++ b/registry/schema-org/Preschool.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Preschool", + "title": "Preschool", + "description": "A preschool.", + "type": "object", + "allOf": [ + { + "description": "An educational organization.", + "$ref": "schema:EducationalOrganization" + } + ] +} diff --git a/registry/schema-org/PresentationDigitalDocument.schema.json b/registry/schema-org/PresentationDigitalDocument.schema.json new file mode 100644 index 0000000..50c80fd --- /dev/null +++ b/registry/schema-org/PresentationDigitalDocument.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:PresentationDigitalDocument", + "title": "PresentationDigitalDocument", + "description": "A file containing slides or used for a presentation.", + "type": "object", + "allOf": [ + { + "description": "An electronic file or document.", + "$ref": "schema:DigitalDocument" + } + ] +} diff --git a/registry/schema-org/PreventionIndication.schema.json b/registry/schema-org/PreventionIndication.schema.json new file mode 100644 index 0000000..e6d04c9 --- /dev/null +++ b/registry/schema-org/PreventionIndication.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:PreventionIndication", + "title": "PreventionIndication", + "description": "An indication for preventing an underlying condition, symptom, etc.", + "type": "object", + "allOf": [ + { + "description": "A condition or factor that indicates use of a medical therapy, including signs, symptoms, risk factors, anatomical states, etc.", + "$ref": "schema:MedicalIndication" + } + ] +} diff --git a/registry/schema-org/PriceComponentTypeEnumeration.schema.json b/registry/schema-org/PriceComponentTypeEnumeration.schema.json new file mode 100644 index 0000000..ae93958 --- /dev/null +++ b/registry/schema-org/PriceComponentTypeEnumeration.schema.json @@ -0,0 +1,33 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:PriceComponentTypeEnumeration", + "title": "PriceComponentTypeEnumeration", + "description": "Enumerates different price components that together make up the total price for an offered product.", + "type": "string", + "oneOf": [ + { + "description": "Represents the activation fee part of the total price for an offered product, for example a cellphone contract.", + "const": "ActivationFee" + }, + { + "description": "Represents the cleaning fee part of the total price for an offered product, for example a vacation rental.", + "const": "CleaningFee" + }, + { + "description": "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.", + "const": "DistanceFee" + }, + { + "description": "Represents the downpayment (up-front payment) price component of the total price for an offered product that has additional installment payments.", + "const": "Downpayment" + }, + { + "description": "Represents the installment pricing component of the total price for an offered product.", + "const": "Installment" + }, + { + "description": "Represents the subscription pricing component of the total price for an offered product.", + "const": "Subscription" + } + ] +} diff --git a/registry/schema-org/PriceSpecification.schema.json b/registry/schema-org/PriceSpecification.schema.json new file mode 100644 index 0000000..4b7850a --- /dev/null +++ b/registry/schema-org/PriceSpecification.schema.json @@ -0,0 +1,65 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:PriceSpecification", + "title": "PriceSpecification", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:StructuredValue" + } + ], + "properties": { + "eligibleQuantity": { + "description": "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.", + "$ref": "schema:QuantitativeValue" + }, + "eligibleTransactionVolume": { + "description": "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.", + "$ref": "schema:PriceSpecification" + }, + "maxPrice": { + "description": "The highest price if the price is a range.", + "type": "number" + }, + "membershipPointsEarned": { + "description": "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.)", + "anyOf": [{ "type": "number" }, { "$ref": "schema:QuantitativeValue" }] + }, + "minPrice": { + "description": "The lowest price if the price is a range.", + "type": "number" + }, + "price": { + "description": "The offer price of a product, or of a price component when attached to PriceSpecification and its subtypes.\\n\\nUsage guidelines:\\n\\n* 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.\\n* Use '.' (Unicode 'FULL STOP' (U+002E)) rather than ',' to indicate a decimal point. Avoid using these symbols as a readability separator.\\n* 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.\\n* Use values from 0123456789 (Unicode 'DIGIT ZERO' (U+0030) to 'DIGIT NINE' (U+0039)) rather than superficially similar Unicode symbols.\n ", + "anyOf": [{ "type": "number" }, { "type": "string" }] + }, + "priceCurrency": { + "description": "The currency of the price, or a price component when attached to [[PriceSpecification]] and its subtypes.\\n\\nUse standard formats: [ISO 4217 currency format](http://en.wikipedia.org/wiki/ISO_4217), e.g. \"USD\"; [Ticker symbol](https://en.wikipedia.org/wiki/List_of_cryptocurrencies) for cryptocurrencies, e.g. \"BTC\"; well known names for [Local Exchange Trading Systems](https://en.wikipedia.org/wiki/Local_exchange_trading_system) (LETS) and other currency types, e.g. \"Ithaca HOUR\".", + "type": "string" + }, + "validForMemberTier": { + "description": "The membership program tier an Offer (or a PriceSpecification, OfferShippingDetails, or MerchantReturnPolicy under an Offer) is valid for.", + "$ref": "schema:MemberProgramTier" + }, + "validFrom": { + "description": "The date when the item becomes valid.", + "anyOf": [ + { "type": "string", "format": "date" }, + { "type": "string", "format": "date-time" } + ] + }, + "validThrough": { + "description": "The date after when the item is not valid. For example the end of an offer, salary period, or a period of opening hours.", + "anyOf": [ + { "type": "string", "format": "date" }, + { "type": "string", "format": "date-time" } + ] + }, + "valueAddedTaxIncluded": { + "description": "Specifies whether the applicable value-added tax (VAT) is included in the price specification or not.", + "type": "boolean" + } + } +} diff --git a/registry/schema-org/PriceTypeEnumeration.schema.json b/registry/schema-org/PriceTypeEnumeration.schema.json new file mode 100644 index 0000000..b3a317e --- /dev/null +++ b/registry/schema-org/PriceTypeEnumeration.schema.json @@ -0,0 +1,41 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:PriceTypeEnumeration", + "title": "PriceTypeEnumeration", + "description": "Enumerates different price types, for example list price, invoice price, and sale price.", + "type": "string", + "oneOf": [ + { + "description": "Represents the invoice price of an offered product.", + "const": "InvoicePrice" + }, + { + "description": "Represents the list price of an offered product. Typically the same as the [MSRP](https://schema.org/MSRP).", + "const": "ListPrice" + }, + { + "description": "Represents the manufacturer suggested retail price (\"MSRP\") of an offered product.", + "const": "MSRP" + }, + { + "description": "Represents the minimum advertised price (\"MAP\") (as dictated by the manufacturer) of an offered product.", + "const": "MinimumAdvertisedPrice" + }, + { + "description": "Represents the regular price of an offered product. This is usually the advertised price before a temporary sale. Once the sale period ends the advertised price will go back to the regular price.", + "const": "RegularPrice" + }, + { + "description": "Represents the suggested retail price (\"SRP\") of an offered product.", + "const": "SRP" + }, + { + "description": "Represents a sale price (usually active for a limited period) of an offered product.", + "const": "SalePrice" + }, + { + "description": "Represents the strikethrough price (the previous advertised price) of an offered product.", + "const": "StrikethroughPrice" + } + ] +} diff --git a/registry/schema-org/Product.schema.json b/registry/schema-org/Product.schema.json new file mode 100644 index 0000000..f51f527 --- /dev/null +++ b/registry/schema-org/Product.schema.json @@ -0,0 +1,534 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Product", + "title": "Product", + "description": "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.", + "type": "object", + "allOf": [ + { "description": "The most generic type of item.", "$ref": "schema:Thing" } + ], + "properties": { + "additionalProperty": { + "description": "A property-value pair representing an additional characteristic of the entity, e.g. a product feature or another characteristic for which there is no matching property in schema.org.\\n\\nNote: Publishers should be aware that applications designed to use specific schema.org properties (e.g. https://schema.org/width, https://schema.org/color, https://schema.org/gtin13, ...) will typically expect such data to be provided using those properties, rather than using the generic property/value mechanism.\n", + "oneOf": [ + { "$ref": "schema:PropertyValue" }, + { "type": "array", "items": { "$ref": "schema:PropertyValue" } } + ] + }, + "aggregateRating": { + "description": "The overall rating, based on a collection of reviews or ratings, of the item.", + "$ref": "schema:AggregateRating" + }, + "asin": { + "description": "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).\n\nNote 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.\nASINs are most commonly encoded as text strings, but the [asin] property supports URL/URI as potential values too.", + "oneOf": [ + { + "anyOf": [{ "type": "string", "format": "uri" }, { "type": "string" }] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" } + ] + } + } + ] + }, + "audience": { + "description": "An intended audience, i.e. a group for whom something was created.", + "$ref": "schema:Audience" + }, + "award": { + "description": "An award won by or for this item.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "awards": { + "description": "Awards won by or for this item.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "brand": { + "description": "The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.", + "anyOf": [{ "$ref": "schema:Brand" }, { "$ref": "schema:Organization" }] + }, + "category": { + "description": "A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:CategoryCode" }, + { "$ref": "schema:PhysicalActivityCategory" }, + { "$ref": "schema:Thing" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:CategoryCode" }, + { "$ref": "schema:PhysicalActivityCategory" }, + { "$ref": "schema:Thing" } + ] + } + } + ] + }, + "color": { "description": "The color of the product.", "type": "string" }, + "colorSwatch": { + "description": "A color swatch image, visualizing the color of a [[Product]]. Should match the textual description specified in the [[color]] property. This can be a URL or a fully described ImageObject.", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:ImageObject" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:ImageObject" } + ] + } + } + ] + }, + "countryOfAssembly": { + "description": "The place where the product was assembled.", + "type": "string" + }, + "countryOfLastProcessing": { + "description": "The place where the item (typically [[Product]]) was last processed and tested before importation.", + "type": "string" + }, + "countryOfOrigin": { + "description": "The country of origin of something, including products as well as creative works such as movie and TV content.\n\nIn the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable.\n\nIn the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.", + "$ref": "schema:Country" + }, + "depth": { + "description": "The depth of the item.", + "anyOf": [ + { "type": "string", "$comment": "https://schema.org/Distance" }, + { "$ref": "schema:QuantitativeValue" } + ] + }, + "funding": { + "description": "A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].", + "oneOf": [ + { "$ref": "schema:Grant" }, + { "type": "array", "items": { "$ref": "schema:Grant" } } + ] + }, + "gtin": { + "description": "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.\n\nA 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.\n\nThe GS1 [digital link specifications](https://www.gs1.org/standards/Digital-Link/) expresses GTINs as URLs (URIs, IRIs, etc.).\nDigital Links should be populated into the [[hasGS1DigitalLink]] attribute.\n\nNote 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.", + "oneOf": [ + { + "anyOf": [{ "type": "string", "format": "uri" }, { "type": "string" }] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" } + ] + } + } + ] + }, + "gtin12": { + "description": "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.", + "type": "string" + }, + "gtin13": { + "description": "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.", + "type": "string" + }, + "gtin14": { + "description": "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.", + "type": "string" + }, + "gtin8": { + "description": "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.", + "type": "string" + }, + "hasAdultConsideration": { + "description": "Used to tag an item to be intended or suitable for consumption or use by adults only.", + "oneOf": [ + { "$ref": "schema:AdultOrientedEnumeration" }, + { + "type": "array", + "items": { "$ref": "schema:AdultOrientedEnumeration" } + } + ] + }, + "hasCertification": { + "description": "Certification information about a product, organization, service, place, or person.", + "oneOf": [ + { "$ref": "schema:Certification" }, + { "type": "array", "items": { "$ref": "schema:Certification" } } + ] + }, + "hasEnergyConsumptionDetails": { + "description": "Defines the energy efficiency Category (also known as \"class\" or \"rating\") for a product according to an international energy efficiency standard.", + "oneOf": [ + { "$ref": "schema:EnergyConsumptionDetails" }, + { + "type": "array", + "items": { "$ref": "schema:EnergyConsumptionDetails" } + } + ] + }, + "hasGS1DigitalLink": { + "description": "The GS1 digital link associated with the object. This URL should conform to the particular requirements of digital links. The link should only contain the Application Identifiers (AIs) that are relevant for the entity being annotated, for instance a [[Product]] or an [[Organization]], and for the correct granularity. In particular, for products:A Digital Link that contains a serial number (AI 21) should only be present on instances of [[IndividualProduct]]A Digital Link that contains a lot number (AI 10) should be annotated as [[SomeProduct]] if only products from that lot are sold, or [[IndividualProduct]] if there is only a specific product.A Digital Link that contains a global model number (AI 8013) should be attached to a [[Product]] or a [[ProductModel]]. Other item types should be adapted similarly.", + "type": "string", + "format": "uri" + }, + "hasMeasurement": { + "description": "A measurement of an item, For example, the inseam of pants, the wheel size of a bicycle, the gauge of a screw, or the carbon footprint measured for certification by an authority. Usually an exact measurement, but can also be a range of measurements for adjustable products, for example belts and ski bindings.", + "oneOf": [ + { "$ref": "schema:QuantitativeValue" }, + { "type": "array", "items": { "$ref": "schema:QuantitativeValue" } } + ] + }, + "hasMerchantReturnPolicy": { + "description": "Specifies a MerchantReturnPolicy that may be applicable.", + "oneOf": [ + { "$ref": "schema:MerchantReturnPolicy" }, + { "type": "array", "items": { "$ref": "schema:MerchantReturnPolicy" } } + ] + }, + "height": { + "description": "The height of the item.", + "anyOf": [ + { "type": "string", "$comment": "https://schema.org/Distance" }, + { "$ref": "schema:QuantitativeValue" } + ] + }, + "inProductGroupWithID": { + "description": "Indicates the [[productGroupID]] for a [[ProductGroup]] that this product [[isVariantOf]]. ", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "isAccessoryOrSparePartFor": { + "description": "A pointer to another product (or multiple products) for which this product is an accessory or spare part.", + "oneOf": [ + { "$ref": "schema:Product" }, + { "type": "array", "items": { "$ref": "schema:Product" } } + ] + }, + "isConsumableFor": { + "description": "A pointer to another product (or multiple products) for which this product is a consumable.", + "oneOf": [ + { "$ref": "schema:Product" }, + { "type": "array", "items": { "$ref": "schema:Product" } } + ] + }, + "isFamilyFriendly": { + "description": "Indicates whether this content is family friendly.", + "type": "boolean" + }, + "isRelatedTo": { + "description": "A pointer to another, somehow related product (or multiple products).", + "oneOf": [ + { + "anyOf": [{ "$ref": "schema:Product" }, { "$ref": "schema:Service" }] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:Product" }, + { "$ref": "schema:Service" } + ] + } + } + ] + }, + "isSimilarTo": { + "description": "A pointer to another, functionally similar product (or multiple products).", + "oneOf": [ + { + "anyOf": [{ "$ref": "schema:Product" }, { "$ref": "schema:Service" }] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:Product" }, + { "$ref": "schema:Service" } + ] + } + } + ] + }, + "isVariantOf": { + "description": "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.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:ProductGroup" }, + { "$ref": "schema:ProductModel" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:ProductGroup" }, + { "$ref": "schema:ProductModel" } + ] + } + } + ] + }, + "itemCondition": { + "description": "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.", + "oneOf": [ + { "$ref": "schema:OfferItemCondition" }, + { "type": "array", "items": { "$ref": "schema:OfferItemCondition" } } + ] + }, + "keywords": { + "description": "Keywords or tags used to describe some item. Multiple textual entries in a keywords list are typically delimited by commas, or by repeating the property.", + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:DefinedTerm" } + ] + }, + "logo": { + "description": "An associated logo.", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:ImageObject" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:ImageObject" } + ] + } + } + ] + }, + "manufacturer": { + "description": "The manufacturer of the product.", + "$ref": "schema:Organization" + }, + "material": { + "description": "A material that something is made from, e.g. leather, wool, cotton, paper.", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:Product" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:Product" } + ] + } + } + ] + }, + "mobileUrl": { + "description": "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'.\n\nTo 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.\n ", + "type": "string" + }, + "model": { + "description": "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.", + "anyOf": [{ "type": "string" }, { "$ref": "schema:ProductModel" }] + }, + "mpn": { + "description": "The Manufacturer Part Number (MPN) of the product, or the product to which the offer refers.", + "type": "string" + }, + "negativeNotes": { + "description": "Provides negative considerations regarding something, most typically in pro/con lists for reviews (alongside [[positiveNotes]]). For symmetry \n\nIn 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 \ntend 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]].\n\nThe 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).", + "oneOf": [ + { + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:ItemList" }, + { "$ref": "schema:ListItem" }, + { "$ref": "schema:WebContent" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:ItemList" }, + { "$ref": "schema:ListItem" }, + { "$ref": "schema:WebContent" } + ] + } + } + ] + }, + "nsn": { + "description": "Indicates the [NATO stock number](https://en.wikipedia.org/wiki/NATO_Stock_Number) (nsn) of a [[Product]]. ", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "offers": { + "description": "An offer to provide this item—for example, an offer to sell a product, rent the DVD of a movie, perform a service, or give away tickets to an event. Use [[businessFunction]] to indicate the kind of transaction offered, i.e. sell, lease, etc. This property can also be used to describe a [[Demand]]. While this property is listed as expected on a number of common types, it can be used in others. In that case, using a second type, such as Product or a subtype of Product, can clarify the nature of the offer.\n ", + "oneOf": [ + { "anyOf": [{ "$ref": "schema:Demand" }, { "$ref": "schema:Offer" }] }, + { + "type": "array", + "items": { + "anyOf": [{ "$ref": "schema:Demand" }, { "$ref": "schema:Offer" }] + } + } + ] + }, + "pattern": { + "description": "A pattern that something has, for example 'polka dot', 'striped', 'Canadian flag'. Values are typically expressed as text, although links to controlled value schemes are also supported.", + "oneOf": [ + { "anyOf": [{ "type": "string" }, { "$ref": "schema:DefinedTerm" }] }, + { + "type": "array", + "items": { + "anyOf": [{ "type": "string" }, { "$ref": "schema:DefinedTerm" }] + } + } + ] + }, + "positiveNotes": { + "description": "Provides positive considerations regarding something, for example product highlights or (alongside [[negativeNotes]]) pro/con lists for reviews.\n\nIn 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.\n\nThe 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).", + "oneOf": [ + { + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:ItemList" }, + { "$ref": "schema:ListItem" }, + { "$ref": "schema:WebContent" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:ItemList" }, + { "$ref": "schema:ListItem" }, + { "$ref": "schema:WebContent" } + ] + } + } + ] + }, + "productID": { + "description": "The product identifier, such as ISBN. For example: ``` meta itemprop=\"productID\" content=\"isbn:123-456-789\" ```.", + "type": "string" + }, + "productionDate": { + "description": "The date of production of the item, e.g. vehicle.", + "type": "string", + "format": "date" + }, + "purchaseDate": { + "description": "The date the item, e.g. vehicle, was purchased by the current owner.", + "type": "string", + "format": "date" + }, + "releaseDate": { + "description": "The release date of a product or product model. This can be used to distinguish the exact variant of a product.", + "type": "string", + "format": "date" + }, + "review": { + "description": "A review of the item.", + "oneOf": [ + { "$ref": "schema:Review" }, + { "type": "array", "items": { "$ref": "schema:Review" } } + ] + }, + "reviews": { + "description": "Review of the item.", + "oneOf": [ + { "$ref": "schema:Review" }, + { "type": "array", "items": { "$ref": "schema:Review" } } + ] + }, + "size": { + "description": "A standardized size of a product or creative work, specified either through a simple textual string (for example 'XL', '32Wx34L'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ", + "oneOf": [ + { + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:DefinedTerm" }, + { "$ref": "schema:QuantitativeValue" }, + { "$ref": "schema:SizeSpecification" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:DefinedTerm" }, + { "$ref": "schema:QuantitativeValue" }, + { "$ref": "schema:SizeSpecification" } + ] + } + } + ] + }, + "sku": { + "description": "The Stock Keeping Unit (SKU), i.e. a merchant-specific identifier for a product or service, or the product to which the offer refers.", + "type": "string" + }, + "slogan": { + "description": "A slogan or motto associated with the item.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "weight": { + "description": "The weight of the product or person.", + "anyOf": [ + { "type": "string", "$comment": "https://schema.org/Mass" }, + { "$ref": "schema:QuantitativeValue" } + ] + }, + "width": { + "description": "The width of the item.", + "anyOf": [ + { "type": "string", "$comment": "https://schema.org/Distance" }, + { "$ref": "schema:QuantitativeValue" } + ] + } + } +} diff --git a/registry/schema-org/ProductCollection.schema.json b/registry/schema-org/ProductCollection.schema.json new file mode 100644 index 0000000..ea09541 --- /dev/null +++ b/registry/schema-org/ProductCollection.schema.json @@ -0,0 +1,26 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:ProductCollection", + "title": "ProductCollection", + "description": "A set of products (either [[ProductGroup]]s or specific variants) that are listed together e.g. in an [[Offer]].", + "type": "object", + "allOf": [ + { + "description": "A collection of items, e.g. creative works or products.", + "$ref": "schema:Collection" + }, + { + "description": "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.", + "$ref": "schema:Product" + } + ], + "properties": { + "includesObject": { + "description": "This links to a node or nodes indicating the exact quantity of the products included in an [[Offer]] or [[ProductCollection]].", + "oneOf": [ + { "$ref": "schema:TypeAndQuantityNode" }, + { "type": "array", "items": { "$ref": "schema:TypeAndQuantityNode" } } + ] + } + } +} diff --git a/registry/schema-org/ProductGroup.schema.json b/registry/schema-org/ProductGroup.schema.json new file mode 100644 index 0000000..6c4f1da --- /dev/null +++ b/registry/schema-org/ProductGroup.schema.json @@ -0,0 +1,41 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:ProductGroup", + "title": "ProductGroup", + "description": "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]]. ", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:Product" + } + ], + "properties": { + "hasVariant": { + "description": "Indicates a [[Product]] that is a member of this [[ProductGroup]] (or [[ProductModel]]).", + "oneOf": [ + { "$ref": "schema:Product" }, + { "type": "array", "items": { "$ref": "schema:Product" } } + ] + }, + "productGroupID": { + "description": "Indicates a textual identifier for a ProductGroup.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "variesBy": { + "description": "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.", + "oneOf": [ + { "anyOf": [{ "type": "string" }, { "$ref": "schema:DefinedTerm" }] }, + { + "type": "array", + "items": { + "anyOf": [{ "type": "string" }, { "$ref": "schema:DefinedTerm" }] + } + } + ] + } + } +} diff --git a/registry/schema-org/ProductModel.schema.json b/registry/schema-org/ProductModel.schema.json new file mode 100644 index 0000000..49429f9 --- /dev/null +++ b/registry/schema-org/ProductModel.schema.json @@ -0,0 +1,49 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:ProductModel", + "title": "ProductModel", + "description": "A datasheet or vendor specification of a product (in the sense of a prototypical description).", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:Product" + } + ], + "properties": { + "isVariantOf": { + "description": "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.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:ProductGroup" }, + { "$ref": "schema:ProductModel" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:ProductGroup" }, + { "$ref": "schema:ProductModel" } + ] + } + } + ] + }, + "predecessorOf": { + "description": "A pointer from a previous, often discontinued variant of the product to its newer variant.", + "oneOf": [ + { "$ref": "schema:ProductModel" }, + { "type": "array", "items": { "$ref": "schema:ProductModel" } } + ] + }, + "successorOf": { + "description": "A pointer from a newer variant of a product to its previous, often discontinued predecessor.", + "oneOf": [ + { "$ref": "schema:ProductModel" }, + { "type": "array", "items": { "$ref": "schema:ProductModel" } } + ] + } + } +} diff --git a/registry/schema-org/ProfessionalService.schema.json b/registry/schema-org/ProfessionalService.schema.json new file mode 100644 index 0000000..287b1ba --- /dev/null +++ b/registry/schema-org/ProfessionalService.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:ProfessionalService", + "title": "ProfessionalService", + "description": "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]].", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:LocalBusiness" + } + ] +} diff --git a/registry/schema-org/ProfilePage.schema.json b/registry/schema-org/ProfilePage.schema.json new file mode 100644 index 0000000..35c3d5d --- /dev/null +++ b/registry/schema-org/ProfilePage.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:ProfilePage", + "title": "ProfilePage", + "description": "Web page type: Profile page.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:WebPage" + } + ] +} diff --git a/registry/schema-org/ProgramMembership.schema.json b/registry/schema-org/ProgramMembership.schema.json new file mode 100644 index 0000000..40d91a8 --- /dev/null +++ b/registry/schema-org/ProgramMembership.schema.json @@ -0,0 +1,78 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:ProgramMembership", + "title": "ProgramMembership", + "description": "Used to describe membership in a loyalty programs (e.g. \"StarAliance\"), traveler clubs (e.g. \"AAA\"), purchase clubs (\"Safeway Club\"), etc.", + "type": "object", + "allOf": [ + { + "description": "A utility class that serves as the umbrella for a number of 'intangible' things such as quantities, structured values, etc.", + "$ref": "schema:Intangible" + } + ], + "properties": { + "hostingOrganization": { + "description": "The Organization (airline, travelers' club, retailer, etc.) the membership is made with or which offers the MemberProgram.", + "$ref": "schema:Organization" + }, + "member": { + "description": "A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + } + } + ] + }, + "members": { + "description": "A member of this organization.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + } + } + ] + }, + "membershipNumber": { + "description": "A unique identifier for the membership.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "membershipPointsEarned": { + "description": "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.)", + "anyOf": [{ "type": "number" }, { "$ref": "schema:QuantitativeValue" }] + }, + "program": { + "description": "The [MemberProgram](https://schema.org/MemberProgram) associated with a [ProgramMembership](https://schema.org/ProgramMembership).", + "$ref": "schema:MemberProgram" + }, + "programName": { + "description": "The program providing the membership. It is preferable to use [:program](https://schema.org/program) instead.", + "type": "string" + } + } +} diff --git a/registry/schema-org/Project.schema.json b/registry/schema-org/Project.schema.json new file mode 100644 index 0000000..10d2e7b --- /dev/null +++ b/registry/schema-org/Project.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Project", + "title": "Project", + "description": "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 ", + "type": "object", + "allOf": [ + { + "description": "An organization such as a school, NGO, corporation, club, etc.", + "$ref": "schema:Organization" + } + ] +} diff --git a/registry/schema-org/PronounceableText.schema.json b/registry/schema-org/PronounceableText.schema.json new file mode 100644 index 0000000..6424034 --- /dev/null +++ b/registry/schema-org/PronounceableText.schema.json @@ -0,0 +1,35 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:PronounceableText", + "title": "PronounceableText", + "description": "Data type: PronounceableText.", + "type": "object", + "allOf": [{ "description": "Data type: Text.", "$ref": "schema:Text" }], + "properties": { + "inLanguage": { + "description": "The language of the content or performance or used in an action. Please use one of the language codes from the [IETF BCP 47 standard](http://tools.ietf.org/html/bcp47). See also [[availableLanguage]].", + "anyOf": [{ "type": "string" }, { "$ref": "schema:Language" }] + }, + "phoneticText": { + "description": "Representation of a text [[textValue]] using the specified [[speechToTextMarkup]]. For example the city name of Houston in IPA: /ˈhjuːstən/.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "speechToTextMarkup": { + "description": "Form of markup used. eg. [SSML](https://www.w3.org/TR/speech-synthesis11) or [IPA](https://www.wikidata.org/wiki/Property:P898).", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "textValue": { + "description": "Text value being annotated.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + } + } +} diff --git a/registry/schema-org/Property.schema.json b/registry/schema-org/Property.schema.json new file mode 100644 index 0000000..4d87afa --- /dev/null +++ b/registry/schema-org/Property.schema.json @@ -0,0 +1,58 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Property", + "title": "Property", + "description": "A property, used to indicate attributes and relationships of some Thing; equivalent to rdf:Property.", + "type": "object", + "allOf": [ + { + "description": "A utility class that serves as the umbrella for a number of 'intangible' things such as quantities, structured values, etc.", + "$ref": "schema:Intangible" + } + ], + "properties": { + "domainIncludes": { + "description": "Relates a property to a class that is (one of) the type(s) the property is expected to be used on.", + "oneOf": [ + { "$ref": "schema:Class" }, + { "type": "array", "items": { "$ref": "schema:Class" } } + ] + }, + "inverseOf": { + "description": "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.", + "oneOf": [ + { "$ref": "schema:Property" }, + { "type": "array", "items": { "$ref": "schema:Property" } } + ] + }, + "rangeIncludes": { + "description": "Relates a property to a class that constitutes (one of) the expected type(s) for values of the property.", + "oneOf": [ + { "$ref": "schema:Class" }, + { "type": "array", "items": { "$ref": "schema:Class" } } + ] + }, + "supersededBy": { + "description": "Relates a term (i.e. a property, class or enumeration) to one that supersedes it.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:Class" }, + { "$ref": "schema:Enumeration" }, + { "$ref": "schema:Property" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:Class" }, + { "$ref": "schema:Enumeration" }, + { "$ref": "schema:Property" } + ] + } + } + ] + } + } +} diff --git a/registry/schema-org/PropertyValue.schema.json b/registry/schema-org/PropertyValue.schema.json new file mode 100644 index 0000000..f31c7c8 --- /dev/null +++ b/registry/schema-org/PropertyValue.schema.json @@ -0,0 +1,140 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:PropertyValue", + "title": "PropertyValue", + "description": "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 ", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:StructuredValue" + } + ], + "properties": { + "maxValue": { + "description": "The upper value of some characteristic or property.", + "type": "number" + }, + "measurementMethod": { + "description": "A subproperty of [[measurementTechnique]] that can be used for specifying specific methods, in particular via [[MeasurementMethodEnum]].", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:DefinedTerm" }, + { "$ref": "schema:MeasurementMethodEnum" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:DefinedTerm" }, + { "$ref": "schema:MeasurementMethodEnum" } + ] + } + } + ] + }, + "measurementTechnique": { + "description": "A technique, method or technology used in an [[Observation]], [[StatisticalVariable]] or [[Dataset]] (or [[DataDownload]], [[DataCatalog]]), corresponding to the method used for measuring the corresponding variable(s) (for datasets, described using [[variableMeasured]]; for [[Observation]], a [[StatisticalVariable]]). Often but not necessarily each [[variableMeasured]] will have an explicit representation as (or mapping to) an property such as those defined in Schema.org, or other RDF vocabularies and \"knowledge graphs\". In that case the subproperty of [[variableMeasured]] called [[measuredProperty]] is applicable.\n \nThe [[measurementTechnique]] property helps when extra clarification is needed about how a [[measuredProperty]] was measured. 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 can often serve as a high level summary for dataset discovery. \n\nFor 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\". \n\nIf there are several [[variableMeasured]] properties recorded for some given data object, use a [[PropertyValue]] for each [[variableMeasured]] and attach the corresponding [[measurementTechnique]]. The value can also be from an enumeration, organized as a [[MeasurementMetholdEnumeration]].", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:DefinedTerm" }, + { "$ref": "schema:MeasurementMethodEnum" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:DefinedTerm" }, + { "$ref": "schema:MeasurementMethodEnum" } + ] + } + } + ] + }, + "minValue": { + "description": "The lower value of some characteristic or property.", + "type": "number" + }, + "propertyID": { + "description": "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\n(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)\na 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).\nStandards bodies should promote a standard prefix for the identifiers of properties from their standards.", + "oneOf": [ + { + "anyOf": [{ "type": "string", "format": "uri" }, { "type": "string" }] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" } + ] + } + } + ] + }, + "unitCode": { + "description": "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.", + "anyOf": [{ "type": "string", "format": "uri" }, { "type": "string" }] + }, + "unitText": { + "description": "A string or text indicating the unit of measurement. Useful if you cannot provide a standard unit code for\nunitCode.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "value": { + "description": "The value of a [[QuantitativeValue]] (including [[Observation]]) or property value node.\\n\\n* For [[QuantitativeValue]] and [[MonetaryAmount]], the recommended type for values is 'Number'.\\n* For [[PropertyValue]], it can be 'Text', 'Number', 'Boolean', or 'StructuredValue'.\\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.", + "anyOf": [ + { "type": "boolean" }, + { "type": "number" }, + { "type": "string" }, + { "$ref": "schema:StructuredValue" } + ] + }, + "valueReference": { + "description": "A secondary value that provides additional information on the original value, e.g. a reference temperature or a type of measurement.", + "oneOf": [ + { + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:DefinedTerm" }, + { "$ref": "schema:Enumeration" }, + { "$ref": "schema:MeasurementTypeEnumeration" }, + { "$ref": "schema:PropertyValue" }, + { "$ref": "schema:QualitativeValue" }, + { "$ref": "schema:QuantitativeValue" }, + { "$ref": "schema:StructuredValue" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:DefinedTerm" }, + { "$ref": "schema:Enumeration" }, + { "$ref": "schema:MeasurementTypeEnumeration" }, + { "$ref": "schema:PropertyValue" }, + { "$ref": "schema:QualitativeValue" }, + { "$ref": "schema:QuantitativeValue" }, + { "$ref": "schema:StructuredValue" } + ] + } + } + ] + } + } +} diff --git a/registry/schema-org/PropertyValueSpecification.schema.json b/registry/schema-org/PropertyValueSpecification.schema.json new file mode 100644 index 0000000..82366ed --- /dev/null +++ b/registry/schema-org/PropertyValueSpecification.schema.json @@ -0,0 +1,71 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:PropertyValueSpecification", + "title": "PropertyValueSpecification", + "description": "A Property value specification.", + "type": "object", + "allOf": [ + { + "description": "A utility class that serves as the umbrella for a number of 'intangible' things such as quantities, structured values, etc.", + "$ref": "schema:Intangible" + } + ], + "properties": { + "defaultValue": { + "description": "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.", + "anyOf": [{ "type": "string" }, { "$ref": "schema:Thing" }] + }, + "maxValue": { + "description": "The upper value of some characteristic or property.", + "type": "number" + }, + "minValue": { + "description": "The lower value of some characteristic or property.", + "type": "number" + }, + "multipleValues": { + "description": "Whether multiple values are allowed for the property. Default is false.", + "type": "boolean" + }, + "readonlyValue": { + "description": "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.", + "type": "boolean" + }, + "stepValue": { + "description": "The stepValue attribute indicates the granularity that is expected (and required) of the value in a PropertyValueSpecification.", + "type": "number" + }, + "valueMaxLength": { + "description": "Specifies the allowed range for number of characters in a literal value.", + "oneOf": [ + { "type": "number" }, + { "type": "array", "items": { "type": "number" } } + ] + }, + "valueMinLength": { + "description": "Specifies the minimum allowed range for number of characters in a literal value.", + "oneOf": [ + { "type": "number" }, + { "type": "array", "items": { "type": "number" } } + ] + }, + "valueName": { + "description": "Indicates the name of the PropertyValueSpecification to be used in URL templates and form encoding in a manner analogous to HTML's input@name.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "valuePattern": { + "description": "Specifies a regular expression for testing literal values according to the HTML spec.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "valueRequired": { + "description": "Whether the property must be filled in to complete the action. Default is false.", + "type": "boolean" + } + } +} diff --git a/registry/schema-org/Protein.schema.json b/registry/schema-org/Protein.schema.json new file mode 100644 index 0000000..1a3dcc6 --- /dev/null +++ b/registry/schema-org/Protein.schema.json @@ -0,0 +1,22 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Protein", + "title": "Protein", + "description": "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 :Protein. A protein can thus be a subclass of another protein, e.g. :Protein as a UniProt record can have multiple isoforms inside it which would also be :Protein. They can be imagined, synthetic, hypothetical or naturally occurring.", + "type": "object", + "allOf": [ + { + "description": "Any biological, chemical, or biochemical thing. For example: a protein; a gene; a chemical; a synthetic chemical.", + "$ref": "schema:BioChemEntity" + } + ], + "properties": { + "hasBioPolymerSequence": { + "description": "A symbolic representation of a BioChemEntity. For example, a nucleotide sequence of a Gene or an amino acid sequence of a Protein.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + } + } +} diff --git a/registry/schema-org/PsychologicalTreatment.schema.json b/registry/schema-org/PsychologicalTreatment.schema.json new file mode 100644 index 0000000..af11fdf --- /dev/null +++ b/registry/schema-org/PsychologicalTreatment.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:PsychologicalTreatment", + "title": "PsychologicalTreatment", + "description": "A process of care relying upon counseling, dialogue and communication aimed at improving a mental health condition without use of drugs.", + "type": "object", + "allOf": [ + { + "description": "A medical procedure intended primarily for therapeutic purposes, aimed at improving a health condition.", + "$ref": "schema:TherapeuticProcedure" + } + ] +} diff --git a/registry/schema-org/PublicSwimmingPool.schema.json b/registry/schema-org/PublicSwimmingPool.schema.json new file mode 100644 index 0000000..7cafaf1 --- /dev/null +++ b/registry/schema-org/PublicSwimmingPool.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:PublicSwimmingPool", + "title": "PublicSwimmingPool", + "description": "A public swimming pool.", + "type": "object", + "allOf": [ + { + "description": "A sports location, such as a playing field.", + "$ref": "schema:SportsActivityLocation" + } + ] +} diff --git a/registry/schema-org/PublicToilet.schema.json b/registry/schema-org/PublicToilet.schema.json new file mode 100644 index 0000000..da2fcf5 --- /dev/null +++ b/registry/schema-org/PublicToilet.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:PublicToilet", + "title": "PublicToilet", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "A public structure, such as a town hall or concert hall.", + "$ref": "schema:CivicStructure" + } + ] +} diff --git a/registry/schema-org/PublicationEvent.schema.json b/registry/schema-org/PublicationEvent.schema.json new file mode 100644 index 0000000..c798d2f --- /dev/null +++ b/registry/schema-org/PublicationEvent.schema.json @@ -0,0 +1,46 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:PublicationEvent", + "title": "PublicationEvent", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:Event" + } + ], + "properties": { + "free": { + "description": "A flag to signal that the item, event, or place is accessible for free.", + "type": "boolean" + }, + "publishedBy": { + "description": "An agent associated with the publication event.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + } + } + ] + }, + "publishedOn": { + "description": "A broadcast service associated with the publication event.", + "oneOf": [ + { "$ref": "schema:BroadcastService" }, + { "type": "array", "items": { "$ref": "schema:BroadcastService" } } + ] + } + } +} diff --git a/registry/schema-org/PublicationIssue.schema.json b/registry/schema-org/PublicationIssue.schema.json new file mode 100644 index 0000000..c0906ce --- /dev/null +++ b/registry/schema-org/PublicationIssue.schema.json @@ -0,0 +1,40 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:PublicationIssue", + "title": "PublicationIssue", + "description": "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](https://blog-schema.org/2014/09/02/schema-org-support-for-bibliographic-relationships-and-periodicals/).", + "type": "object", + "allOf": [ + { + "description": "The most generic kind of creative work, including books, movies, photographs, software programs, etc.", + "$ref": "schema:CreativeWork" + } + ], + "properties": { + "issueNumber": { + "description": "Identifies the issue of publication; for example, \"iii\" or \"2\".", + "oneOf": [ + { "anyOf": [{ "type": "integer" }, { "type": "string" }] }, + { + "type": "array", + "items": { "anyOf": [{ "type": "integer" }, { "type": "string" }] } + } + ] + }, + "pageEnd": { + "description": "The page on which the work ends; for example \"138\" or \"xvi\".", + "anyOf": [{ "type": "integer" }, { "type": "string" }] + }, + "pageStart": { + "description": "The page on which the work starts; for example \"135\" or \"xiii\".", + "anyOf": [{ "type": "integer" }, { "type": "string" }] + }, + "pagination": { + "description": "Any description of pages that is not separated into pageStart and pageEnd; for example, \"1-6, 9, 55\" or \"10-12, 46-49\".", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + } + } +} diff --git a/registry/schema-org/PublicationVolume.schema.json b/registry/schema-org/PublicationVolume.schema.json new file mode 100644 index 0000000..bb4d74d --- /dev/null +++ b/registry/schema-org/PublicationVolume.schema.json @@ -0,0 +1,40 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:PublicationVolume", + "title": "PublicationVolume", + "description": "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](https://blog-schema.org/2014/09/02/schema-org-support-for-bibliographic-relationships-and-periodicals/).", + "type": "object", + "allOf": [ + { + "description": "The most generic kind of creative work, including books, movies, photographs, software programs, etc.", + "$ref": "schema:CreativeWork" + } + ], + "properties": { + "pageEnd": { + "description": "The page on which the work ends; for example \"138\" or \"xvi\".", + "anyOf": [{ "type": "integer" }, { "type": "string" }] + }, + "pageStart": { + "description": "The page on which the work starts; for example \"135\" or \"xiii\".", + "anyOf": [{ "type": "integer" }, { "type": "string" }] + }, + "pagination": { + "description": "Any description of pages that is not separated into pageStart and pageEnd; for example, \"1-6, 9, 55\" or \"10-12, 46-49\".", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "volumeNumber": { + "description": "Identifies the volume of publication or multi-part work; for example, \"iii\" or \"2\".", + "oneOf": [ + { "anyOf": [{ "type": "integer" }, { "type": "string" }] }, + { + "type": "array", + "items": { "anyOf": [{ "type": "integer" }, { "type": "string" }] } + } + ] + } + } +} diff --git a/registry/schema-org/PurchaseType.schema.json b/registry/schema-org/PurchaseType.schema.json new file mode 100644 index 0000000..7b241ed --- /dev/null +++ b/registry/schema-org/PurchaseType.schema.json @@ -0,0 +1,25 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:PurchaseType", + "title": "PurchaseType", + "description": "Enumerates a purchase type for an item.", + "type": "string", + "oneOf": [ + { + "description": "This is a lease of an item.", + "const": "PurchaseTypeLease" + }, + { + "description": "This is a purchase of a new item.", + "const": "PurchaseTypeNewPurchase" + }, + { + "description": "This is a trade-in for an item.", + "const": "PurchaseTypeTradeIn" + }, + { + "description": "This is a purchase of a used item.", + "const": "PurchaseTypeUsedPurchase" + } + ] +} diff --git a/registry/schema-org/QAPage.schema.json b/registry/schema-org/QAPage.schema.json new file mode 100644 index 0000000..31c8e38 --- /dev/null +++ b/registry/schema-org/QAPage.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:QAPage", + "title": "QAPage", + "description": "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).", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:WebPage" + } + ] +} diff --git a/registry/schema-org/QualitativeValue.schema.json b/registry/schema-org/QualitativeValue.schema.json new file mode 100644 index 0000000..51c3509 --- /dev/null +++ b/registry/schema-org/QualitativeValue.schema.json @@ -0,0 +1,90 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:QualitativeValue", + "title": "QualitativeValue", + "description": "A predefined value for a product characteristic, e.g. the power cord plug type 'US' or the garment sizes 'S', 'M', 'L', and 'XL'.", + "type": "object", + "properties": { + "additionalProperty": { + "description": "A property-value pair representing an additional characteristic of the entity, e.g. a product feature or another characteristic for which there is no matching property in schema.org.\\n\\nNote: Publishers should be aware that applications designed to use specific schema.org properties (e.g. https://schema.org/width, https://schema.org/color, https://schema.org/gtin13, ...) will typically expect such data to be provided using those properties, rather than using the generic property/value mechanism.\n", + "oneOf": [ + { "$ref": "schema:PropertyValue" }, + { "type": "array", "items": { "$ref": "schema:PropertyValue" } } + ] + }, + "equal": { + "description": "This ordering relation for qualitative values indicates that the subject is equal to the object.", + "oneOf": [ + { "$ref": "schema:QualitativeValue" }, + { "type": "array", "items": { "$ref": "schema:QualitativeValue" } } + ] + }, + "greater": { + "description": "This ordering relation for qualitative values indicates that the subject is greater than the object.", + "oneOf": [ + { "$ref": "schema:QualitativeValue" }, + { "type": "array", "items": { "$ref": "schema:QualitativeValue" } } + ] + }, + "greaterOrEqual": { + "description": "This ordering relation for qualitative values indicates that the subject is greater than or equal to the object.", + "oneOf": [ + { "$ref": "schema:QualitativeValue" }, + { "type": "array", "items": { "$ref": "schema:QualitativeValue" } } + ] + }, + "lesser": { + "description": "This ordering relation for qualitative values indicates that the subject is lesser than the object.", + "oneOf": [ + { "$ref": "schema:QualitativeValue" }, + { "type": "array", "items": { "$ref": "schema:QualitativeValue" } } + ] + }, + "lesserOrEqual": { + "description": "This ordering relation for qualitative values indicates that the subject is lesser than or equal to the object.", + "oneOf": [ + { "$ref": "schema:QualitativeValue" }, + { "type": "array", "items": { "$ref": "schema:QualitativeValue" } } + ] + }, + "nonEqual": { + "description": "This ordering relation for qualitative values indicates that the subject is not equal to the object.", + "oneOf": [ + { "$ref": "schema:QualitativeValue" }, + { "type": "array", "items": { "$ref": "schema:QualitativeValue" } } + ] + }, + "valueReference": { + "description": "A secondary value that provides additional information on the original value, e.g. a reference temperature or a type of measurement.", + "oneOf": [ + { + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:DefinedTerm" }, + { "$ref": "schema:Enumeration" }, + { "$ref": "schema:MeasurementTypeEnumeration" }, + { "$ref": "schema:PropertyValue" }, + { "$ref": "schema:QualitativeValue" }, + { "$ref": "schema:QuantitativeValue" }, + { "$ref": "schema:StructuredValue" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:DefinedTerm" }, + { "$ref": "schema:Enumeration" }, + { "$ref": "schema:MeasurementTypeEnumeration" }, + { "$ref": "schema:PropertyValue" }, + { "$ref": "schema:QualitativeValue" }, + { "$ref": "schema:QuantitativeValue" }, + { "$ref": "schema:StructuredValue" } + ] + } + } + ] + } + } +} diff --git a/registry/schema-org/QuantitativeValue.schema.json b/registry/schema-org/QuantitativeValue.schema.json new file mode 100644 index 0000000..07e6e97 --- /dev/null +++ b/registry/schema-org/QuantitativeValue.schema.json @@ -0,0 +1,82 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:QuantitativeValue", + "title": "QuantitativeValue", + "description": "A point value or interval for product characteristics and other purposes.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:StructuredValue" + } + ], + "properties": { + "additionalProperty": { + "description": "A property-value pair representing an additional characteristic of the entity, e.g. a product feature or another characteristic for which there is no matching property in schema.org.\\n\\nNote: Publishers should be aware that applications designed to use specific schema.org properties (e.g. https://schema.org/width, https://schema.org/color, https://schema.org/gtin13, ...) will typically expect such data to be provided using those properties, rather than using the generic property/value mechanism.\n", + "oneOf": [ + { "$ref": "schema:PropertyValue" }, + { "type": "array", "items": { "$ref": "schema:PropertyValue" } } + ] + }, + "maxValue": { + "description": "The upper value of some characteristic or property.", + "type": "number" + }, + "minValue": { + "description": "The lower value of some characteristic or property.", + "type": "number" + }, + "unitCode": { + "description": "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.", + "anyOf": [{ "type": "string", "format": "uri" }, { "type": "string" }] + }, + "unitText": { + "description": "A string or text indicating the unit of measurement. Useful if you cannot provide a standard unit code for\nunitCode.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "value": { + "description": "The value of a [[QuantitativeValue]] (including [[Observation]]) or property value node.\\n\\n* For [[QuantitativeValue]] and [[MonetaryAmount]], the recommended type for values is 'Number'.\\n* For [[PropertyValue]], it can be 'Text', 'Number', 'Boolean', or 'StructuredValue'.\\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.", + "anyOf": [ + { "type": "boolean" }, + { "type": "number" }, + { "type": "string" }, + { "$ref": "schema:StructuredValue" } + ] + }, + "valueReference": { + "description": "A secondary value that provides additional information on the original value, e.g. a reference temperature or a type of measurement.", + "oneOf": [ + { + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:DefinedTerm" }, + { "$ref": "schema:Enumeration" }, + { "$ref": "schema:MeasurementTypeEnumeration" }, + { "$ref": "schema:PropertyValue" }, + { "$ref": "schema:QualitativeValue" }, + { "$ref": "schema:QuantitativeValue" }, + { "$ref": "schema:StructuredValue" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:DefinedTerm" }, + { "$ref": "schema:Enumeration" }, + { "$ref": "schema:MeasurementTypeEnumeration" }, + { "$ref": "schema:PropertyValue" }, + { "$ref": "schema:QualitativeValue" }, + { "$ref": "schema:QuantitativeValue" }, + { "$ref": "schema:StructuredValue" } + ] + } + } + ] + } + } +} diff --git a/registry/schema-org/QuantitativeValueDistribution.schema.json b/registry/schema-org/QuantitativeValueDistribution.schema.json new file mode 100644 index 0000000..3242b88 --- /dev/null +++ b/registry/schema-org/QuantitativeValueDistribution.schema.json @@ -0,0 +1,39 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:QuantitativeValueDistribution", + "title": "QuantitativeValueDistribution", + "description": "A statistical distribution of values.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:StructuredValue" + } + ], + "properties": { + "duration": { + "description": "The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 duration format](http://en.wikipedia.org/wiki/ISO_8601).", + "anyOf": [ + { "type": "string", "$comment": "https://schema.org/Duration" }, + { "$ref": "schema:QuantitativeValue" } + ] + }, + "median": { "description": "The median value.", "type": "number" }, + "percentile10": { + "description": "The 10th percentile value.", + "type": "number" + }, + "percentile25": { + "description": "The 25th percentile value.", + "type": "number" + }, + "percentile75": { + "description": "The 75th percentile value.", + "type": "number" + }, + "percentile90": { + "description": "The 90th percentile value.", + "type": "number" + } + } +} diff --git a/registry/schema-org/Quantity.schema.json b/registry/schema-org/Quantity.schema.json new file mode 100644 index 0000000..b620a4c --- /dev/null +++ b/registry/schema-org/Quantity.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Quantity", + "title": "Quantity", + "description": "Quantities such as distance, time, mass, weight, etc. Particular instances of say Mass are entities like '3 kg' or '4 milligrams'.", + "type": "object", + "allOf": [ + { + "description": "A utility class that serves as the umbrella for a number of 'intangible' things such as quantities, structured values, etc.", + "$ref": "schema:Intangible" + } + ] +} diff --git a/registry/schema-org/Question.schema.json b/registry/schema-org/Question.schema.json new file mode 100644 index 0000000..dc95402 --- /dev/null +++ b/registry/schema-org/Question.schema.json @@ -0,0 +1,51 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Question", + "title": "Question", + "description": "A specific question - e.g. from a user seeking answers online, or collected in a Frequently Asked Questions (FAQ) document.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:Comment" + } + ], + "properties": { + "acceptedAnswer": { + "description": "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.", + "anyOf": [{ "$ref": "schema:Answer" }, { "$ref": "schema:ItemList" }] + }, + "answerCount": { + "description": "The number of answers this question has received.", + "type": "integer" + }, + "eduQuestionType": { + "description": "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\".", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "parentItem": { + "description": "The parent of a question, answer or item in general. Typically used for Q/A discussion threads e.g. a chain of comments with the first comment being an [[Article]] or other [[CreativeWork]]. See also [[comment]] which points from something to a comment about it.", + "anyOf": [{ "$ref": "schema:Comment" }, { "$ref": "schema:CreativeWork" }] + }, + "suggestedAnswer": { + "description": "An answer (possibly one of several, possibly incorrect) to a Question, e.g. on a Question/Answer site.", + "oneOf": [ + { + "anyOf": [{ "$ref": "schema:Answer" }, { "$ref": "schema:ItemList" }] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:Answer" }, + { "$ref": "schema:ItemList" } + ] + } + } + ] + } + } +} diff --git a/registry/schema-org/Quiz.schema.json b/registry/schema-org/Quiz.schema.json new file mode 100644 index 0000000..5e3de15 --- /dev/null +++ b/registry/schema-org/Quiz.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Quiz", + "title": "Quiz", + "description": "Quiz: A test of knowledge, skills and abilities.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:LearningResource" + } + ] +} diff --git a/registry/schema-org/Quotation.schema.json b/registry/schema-org/Quotation.schema.json new file mode 100644 index 0000000..1379b83 --- /dev/null +++ b/registry/schema-org/Quotation.schema.json @@ -0,0 +1,19 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Quotation", + "title": "Quotation", + "description": "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]].", + "type": "object", + "allOf": [ + { + "description": "The most generic kind of creative work, including books, movies, photographs, software programs, etc.", + "$ref": "schema:CreativeWork" + } + ], + "properties": { + "spokenByCharacter": { + "description": "The (e.g. fictional) character, Person or Organization to whom the quotation is attributed within the containing CreativeWork.", + "anyOf": [{ "$ref": "schema:Organization" }, { "$ref": "schema:Person" }] + } + } +} diff --git a/registry/schema-org/QuoteAction.schema.json b/registry/schema-org/QuoteAction.schema.json new file mode 100644 index 0000000..b96af58 --- /dev/null +++ b/registry/schema-org/QuoteAction.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:QuoteAction", + "title": "QuoteAction", + "description": "An agent quotes/estimates/appraises an object/product/service with a price at a location/store.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:TradeAction" + } + ] +} diff --git a/registry/schema-org/RVPark.schema.json b/registry/schema-org/RVPark.schema.json new file mode 100644 index 0000000..76c5a13 --- /dev/null +++ b/registry/schema-org/RVPark.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:RVPark", + "title": "RVPark", + "description": "A place offering space for \"Recreational Vehicles\", Caravans, mobile homes and the like.", + "type": "object", + "allOf": [ + { + "description": "A public structure, such as a town hall or concert hall.", + "$ref": "schema:CivicStructure" + } + ] +} diff --git a/registry/schema-org/RadiationTherapy.schema.json b/registry/schema-org/RadiationTherapy.schema.json new file mode 100644 index 0000000..641db87 --- /dev/null +++ b/registry/schema-org/RadiationTherapy.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:RadiationTherapy", + "title": "RadiationTherapy", + "description": "A process of care using radiation aimed at improving a health condition.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:MedicalTherapy" + } + ] +} diff --git a/registry/schema-org/RadioBroadcastService.schema.json b/registry/schema-org/RadioBroadcastService.schema.json new file mode 100644 index 0000000..50fc43e --- /dev/null +++ b/registry/schema-org/RadioBroadcastService.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:RadioBroadcastService", + "title": "RadioBroadcastService", + "description": "A delivery service through which radio content is provided via broadcast over the air or online.", + "type": "object", + "allOf": [ + { + "description": "A delivery service through which content is provided via broadcast over the air or online.", + "$ref": "schema:BroadcastService" + } + ] +} diff --git a/registry/schema-org/RadioChannel.schema.json b/registry/schema-org/RadioChannel.schema.json new file mode 100644 index 0000000..ec35bad --- /dev/null +++ b/registry/schema-org/RadioChannel.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:RadioChannel", + "title": "RadioChannel", + "description": "A unique instance of a radio BroadcastService on a CableOrSatelliteService lineup.", + "type": "object", + "allOf": [ + { + "description": "A unique instance of a BroadcastService on a CableOrSatelliteService lineup.", + "$ref": "schema:BroadcastChannel" + } + ] +} diff --git a/registry/schema-org/RadioClip.schema.json b/registry/schema-org/RadioClip.schema.json new file mode 100644 index 0000000..01e0fd4 --- /dev/null +++ b/registry/schema-org/RadioClip.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:RadioClip", + "title": "RadioClip", + "description": "A short radio program or a segment/part of a radio program.", + "type": "object", + "allOf": [ + { + "description": "A short TV or radio program or a segment/part of a program.", + "$ref": "schema:Clip" + } + ] +} diff --git a/registry/schema-org/RadioEpisode.schema.json b/registry/schema-org/RadioEpisode.schema.json new file mode 100644 index 0000000..2ae18ff --- /dev/null +++ b/registry/schema-org/RadioEpisode.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:RadioEpisode", + "title": "RadioEpisode", + "description": "A radio episode which can be part of a series or season.", + "type": "object", + "allOf": [ + { + "description": "A media episode (e.g. TV, radio, video game) which can be part of a series or season.", + "$ref": "schema:Episode" + } + ] +} diff --git a/registry/schema-org/RadioSeason.schema.json b/registry/schema-org/RadioSeason.schema.json new file mode 100644 index 0000000..59c60dc --- /dev/null +++ b/registry/schema-org/RadioSeason.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:RadioSeason", + "title": "RadioSeason", + "description": "Season dedicated to radio broadcast and associated online delivery.", + "type": "object", + "allOf": [ + { + "description": "A media season, e.g. TV, radio, video game etc.", + "$ref": "schema:CreativeWorkSeason" + } + ] +} diff --git a/registry/schema-org/RadioSeries.schema.json b/registry/schema-org/RadioSeries.schema.json new file mode 100644 index 0000000..73b2257 --- /dev/null +++ b/registry/schema-org/RadioSeries.schema.json @@ -0,0 +1,121 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:RadioSeries", + "title": "RadioSeries", + "description": "CreativeWorkSeries dedicated to radio broadcast and associated online delivery.", + "type": "object", + "allOf": [ + { + "description": "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 ", + "$ref": "schema:CreativeWorkSeries" + } + ], + "properties": { + "actor": { + "description": "An actor (individual or a group), 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.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:PerformingGroup" }, + { "$ref": "schema:Person" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:PerformingGroup" }, + { "$ref": "schema:Person" } + ] + } + } + ] + }, + "actors": { + "description": "An actor, e.g. in TV, radio, movie, video games etc. Actors can be associated with individual items or with a series, episode, clip.", + "oneOf": [ + { "$ref": "schema:Person" }, + { "type": "array", "items": { "$ref": "schema:Person" } } + ] + }, + "containsSeason": { + "description": "A season that is part of the media series.", + "oneOf": [ + { "$ref": "schema:CreativeWorkSeason" }, + { "type": "array", "items": { "$ref": "schema:CreativeWorkSeason" } } + ] + }, + "director": { + "description": "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.", + "$ref": "schema:Person" + }, + "directors": { + "description": "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.", + "oneOf": [ + { "$ref": "schema:Person" }, + { "type": "array", "items": { "$ref": "schema:Person" } } + ] + }, + "episode": { + "description": "An episode of a TV, radio or game media within a series or season.", + "oneOf": [ + { "$ref": "schema:Episode" }, + { "type": "array", "items": { "$ref": "schema:Episode" } } + ] + }, + "episodes": { + "description": "An episode of a TV/radio series or season.", + "oneOf": [ + { "$ref": "schema:Episode" }, + { "type": "array", "items": { "$ref": "schema:Episode" } } + ] + }, + "musicBy": { + "description": "The composer of the soundtrack.", + "anyOf": [{ "$ref": "schema:MusicGroup" }, { "$ref": "schema:Person" }] + }, + "numberOfEpisodes": { + "description": "The number of episodes in this season or series.", + "type": "integer" + }, + "numberOfSeasons": { + "description": "The number of seasons in this series.", + "type": "integer" + }, + "productionCompany": { + "description": "The production company or studio responsible for the item, e.g. series, video game, episode etc.", + "$ref": "schema:Organization" + }, + "season": { + "description": "A season in a media series.", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:CreativeWorkSeason" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:CreativeWorkSeason" } + ] + } + } + ] + }, + "seasons": { + "description": "A season in a media series.", + "oneOf": [ + { "$ref": "schema:CreativeWorkSeason" }, + { "type": "array", "items": { "$ref": "schema:CreativeWorkSeason" } } + ] + }, + "trailer": { + "description": "The trailer of a movie or TV/radio series, season, episode, etc.", + "$ref": "schema:VideoObject" + } + } +} diff --git a/registry/schema-org/RadioStation.schema.json b/registry/schema-org/RadioStation.schema.json new file mode 100644 index 0000000..ea806d3 --- /dev/null +++ b/registry/schema-org/RadioStation.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:RadioStation", + "title": "RadioStation", + "description": "A radio station.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:LocalBusiness" + } + ] +} diff --git a/registry/schema-org/Rating.schema.json b/registry/schema-org/Rating.schema.json new file mode 100644 index 0000000..1d662ac --- /dev/null +++ b/registry/schema-org/Rating.schema.json @@ -0,0 +1,45 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Rating", + "title": "Rating", + "description": "A rating is an evaluation on a numeric scale, such as 1 to 5 stars.", + "type": "object", + "allOf": [ + { + "description": "A utility class that serves as the umbrella for a number of 'intangible' things such as quantities, structured values, etc.", + "$ref": "schema:Intangible" + } + ], + "properties": { + "author": { + "description": "The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.", + "anyOf": [{ "$ref": "schema:Organization" }, { "$ref": "schema:Person" }] + }, + "bestRating": { + "description": "The highest value allowed in this rating system.", + "anyOf": [{ "type": "number" }, { "type": "string" }] + }, + "ratingExplanation": { + "description": "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]].", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "ratingValue": { + "description": "The rating for the content.\\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.", + "anyOf": [{ "type": "number" }, { "type": "string" }] + }, + "reviewAspect": { + "description": "This Review or Rating is relevant to this part or facet of the itemReviewed.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "worstRating": { + "description": "The lowest value allowed in this rating system.", + "anyOf": [{ "type": "number" }, { "type": "string" }] + } + } +} diff --git a/registry/schema-org/ReactAction.schema.json b/registry/schema-org/ReactAction.schema.json new file mode 100644 index 0000000..dc2c084 --- /dev/null +++ b/registry/schema-org/ReactAction.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:ReactAction", + "title": "ReactAction", + "description": "The act of responding instinctively and emotionally to an object, expressing a sentiment.", + "type": "object", + "allOf": [ + { + "description": "The act of forming one's opinion, reaction or sentiment.", + "$ref": "schema:AssessAction" + } + ] +} diff --git a/registry/schema-org/ReadAction.schema.json b/registry/schema-org/ReadAction.schema.json new file mode 100644 index 0000000..367a8f9 --- /dev/null +++ b/registry/schema-org/ReadAction.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:ReadAction", + "title": "ReadAction", + "description": "The act of consuming written content.", + "type": "object", + "allOf": [ + { + "description": "The act of ingesting information/resources/food.", + "$ref": "schema:ConsumeAction" + } + ] +} diff --git a/registry/schema-org/RealEstateAgent.schema.json b/registry/schema-org/RealEstateAgent.schema.json new file mode 100644 index 0000000..764c411 --- /dev/null +++ b/registry/schema-org/RealEstateAgent.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:RealEstateAgent", + "title": "RealEstateAgent", + "description": "A real-estate agent.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:LocalBusiness" + } + ] +} diff --git a/registry/schema-org/RealEstateListing.schema.json b/registry/schema-org/RealEstateListing.schema.json new file mode 100644 index 0000000..d04eba5 --- /dev/null +++ b/registry/schema-org/RealEstateListing.schema.json @@ -0,0 +1,42 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:RealEstateListing", + "title": "RealEstateListing", + "description": "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 ", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:WebPage" + } + ], + "properties": { + "datePosted": { + "description": "Publication date of an online listing.", + "anyOf": [ + { "type": "string", "format": "date" }, + { "type": "string", "format": "date-time" } + ] + }, + "leaseLength": { + "description": "Length of the lease for some [[Accommodation]], either particular to some [[Offer]] or in some cases intrinsic to the property.", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "$comment": "https://schema.org/Duration" }, + { "$ref": "schema:QuantitativeValue" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "$comment": "https://schema.org/Duration" }, + { "$ref": "schema:QuantitativeValue" } + ] + } + } + ] + } + } +} diff --git a/registry/schema-org/ReceiveAction.schema.json b/registry/schema-org/ReceiveAction.schema.json new file mode 100644 index 0000000..e671bc1 --- /dev/null +++ b/registry/schema-org/ReceiveAction.schema.json @@ -0,0 +1,44 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:ReceiveAction", + "title": "ReceiveAction", + "description": "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).", + "type": "object", + "allOf": [ + { + "description": "The act of transferring/moving (abstract or concrete) animate or inanimate objects from one place to another.", + "$ref": "schema:TransferAction" + } + ], + "properties": { + "deliveryMethod": { + "description": "A sub property of instrument. The method of delivery.", + "oneOf": [ + { "$ref": "schema:DeliveryMethod" }, + { "type": "array", "items": { "$ref": "schema:DeliveryMethod" } } + ] + }, + "sender": { + "description": "A sub property of participant. The participant who is at the sending end of the action.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:Audience" }, + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:Audience" }, + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + } + } + ] + } + } +} diff --git a/registry/schema-org/Recipe.json b/registry/schema-org/Recipe.json deleted file mode 100644 index a8e24ac..0000000 --- a/registry/schema-org/Recipe.json +++ /dev/null @@ -1,103 +0,0 @@ -{ - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://schema.org/Recipe", - "title": "Recipe", - "type": "object", - "required": [ - "@context", - "@type", - "name", - "image", - "recipeIngredient", - "recipeInstructions" - ], - "properties": { - "@context": { - "const": "https://schema.org/" - }, - "@type": { - "const": "Recipe" - }, - "name": { - "type": "string" - }, - "image": { - "oneOf": [ - { - "$ref": "Url.json" - }, - { - "type": "array", - "items": { - "$ref": "Url.json" - }, - "minItems": 1 - }, - { - "$ref": "ImageObject.json" - }, - { - "type": "array", - "items": { - "$ref": "ImageObject.json" - }, - "minItems": 1 - } - ] - }, - "description": { - "type": "string" - }, - "author": { - "type": "object", - "required": [ - "@type", - "name" - ], - "properties": { - "@type": { - "const": "Person" - }, - "name": { - "type": "string" - } - }, - "additionalProperties": false - }, - "datePublished": { - "type": "string", - "format": "date" - }, - "prepTime": { - "type": "string", - "pattern": "^P(T?\\d+H?\\d*M?\\d*S?)$" - }, - "cookTime": { - "type": "string", - "pattern": "^P(T?\\d+H?\\d*M?\\d*S?)$" - }, - "recipeYield": { - "type": "string" - }, - "recipeIngredient": { - "type": "array", - "items": { - "type": "string" - } - }, - "recipeInstructions": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "string" - } - } - ] - } - }, - "additionalProperties": true -} diff --git a/registry/schema-org/Recipe.schema.json b/registry/schema-org/Recipe.schema.json new file mode 100644 index 0000000..73a967d --- /dev/null +++ b/registry/schema-org/Recipe.schema.json @@ -0,0 +1,69 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Recipe", + "title": "Recipe", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "Instructions that explain how to achieve a result by performing a sequence of steps.", + "$ref": "schema:HowTo" + } + ], + "properties": { + "cookTime": { + "description": "The time it takes to actually cook the dish, in [ISO 8601 duration format](http://en.wikipedia.org/wiki/ISO_8601).", + "type": "string", + "$comment": "https://schema.org/Duration" + }, + "cookingMethod": { + "description": "The method of cooking, such as Frying, Steaming, ...", + "type": "string" + }, + "ingredients": { + "description": "A single ingredient used in the recipe, e.g. sugar, flour or garlic.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "nutrition": { + "description": "Nutrition information about the recipe or menu item.", + "$ref": "schema:NutritionInformation" + }, + "recipeCategory": { + "description": "The category of the recipe—for example, appetizer, entree, etc.", + "type": "string" + }, + "recipeCuisine": { + "description": "The cuisine of the recipe (for example, French or Ethiopian).", + "type": "string" + }, + "recipeIngredient": { + "description": "A single ingredient used in the recipe, e.g. sugar, flour or garlic.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "recipeInstructions": { + "description": "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.", + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:CreativeWork" }, + { "$ref": "schema:ItemList" } + ] + }, + "recipeYield": { + "description": "The quantity produced by the recipe (for example, number of people served, number of servings, etc).", + "anyOf": [{ "type": "string" }, { "$ref": "schema:QuantitativeValue" }] + }, + "suitableForDiet": { + "description": "Indicates a dietary restriction or guideline for which this recipe or menu item is suitable, e.g. diabetic, halal etc.", + "oneOf": [ + { "$ref": "schema:RestrictedDiet" }, + { "type": "array", "items": { "$ref": "schema:RestrictedDiet" } } + ] + } + } +} diff --git a/registry/schema-org/Recommendation.schema.json b/registry/schema-org/Recommendation.schema.json new file mode 100644 index 0000000..d2d9004 --- /dev/null +++ b/registry/schema-org/Recommendation.schema.json @@ -0,0 +1,41 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Recommendation", + "title": "Recommendation", + "description": "[[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.", + "type": "object", + "allOf": [ + { + "description": "A review of an item - for example, of a restaurant, movie, or store.", + "$ref": "schema:Review" + } + ], + "properties": { + "category": { + "description": "A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:CategoryCode" }, + { "$ref": "schema:PhysicalActivityCategory" }, + { "$ref": "schema:Thing" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:CategoryCode" }, + { "$ref": "schema:PhysicalActivityCategory" }, + { "$ref": "schema:Thing" } + ] + } + } + ] + } + } +} diff --git a/registry/schema-org/RecommendedDoseSchedule.schema.json b/registry/schema-org/RecommendedDoseSchedule.schema.json new file mode 100644 index 0000000..28f94ac --- /dev/null +++ b/registry/schema-org/RecommendedDoseSchedule.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:RecommendedDoseSchedule", + "title": "RecommendedDoseSchedule", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "A specific dosing schedule for a drug or supplement.", + "$ref": "schema:DoseSchedule" + } + ] +} diff --git a/registry/schema-org/RecyclingCenter.schema.json b/registry/schema-org/RecyclingCenter.schema.json new file mode 100644 index 0000000..6d5177c --- /dev/null +++ b/registry/schema-org/RecyclingCenter.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:RecyclingCenter", + "title": "RecyclingCenter", + "description": "A recycling center.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:LocalBusiness" + } + ] +} diff --git a/registry/schema-org/RefundTypeEnumeration.schema.json b/registry/schema-org/RefundTypeEnumeration.schema.json new file mode 100644 index 0000000..fa27db8 --- /dev/null +++ b/registry/schema-org/RefundTypeEnumeration.schema.json @@ -0,0 +1,21 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:RefundTypeEnumeration", + "title": "RefundTypeEnumeration", + "description": "Enumerates several kinds of product return refund types.", + "type": "string", + "oneOf": [ + { + "description": "Specifies that a refund can be done as an exchange for the same product.", + "const": "ExchangeRefund" + }, + { + "description": "Specifies that a refund can be done in the full amount the customer paid for the product.", + "const": "FullRefund" + }, + { + "description": "Specifies that the customer receives a store credit as refund when returning a product.", + "const": "StoreCreditRefund" + } + ] +} diff --git a/registry/schema-org/RegisterAction.schema.json b/registry/schema-org/RegisterAction.schema.json new file mode 100644 index 0000000..7d3cf88 --- /dev/null +++ b/registry/schema-org/RegisterAction.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:RegisterAction", + "title": "RegisterAction", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "The act of interacting with another person or organization.", + "$ref": "schema:InteractAction" + } + ] +} diff --git a/registry/schema-org/RejectAction.schema.json b/registry/schema-org/RejectAction.schema.json new file mode 100644 index 0000000..ddb8471 --- /dev/null +++ b/registry/schema-org/RejectAction.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:RejectAction", + "title": "RejectAction", + "description": "The act of rejecting to/adopting an object.\\n\\nRelated actions:\\n\\n* [[AcceptAction]]: The antonym of RejectAction.", + "type": "object", + "allOf": [ + { + "description": "The act of organizing tasks/objects/events by associating resources to it.", + "$ref": "schema:AllocateAction" + } + ] +} diff --git a/registry/schema-org/RentAction.schema.json b/registry/schema-org/RentAction.schema.json new file mode 100644 index 0000000..8a5ac89 --- /dev/null +++ b/registry/schema-org/RentAction.schema.json @@ -0,0 +1,42 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:RentAction", + "title": "RentAction", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:TradeAction" + } + ], + "properties": { + "landlord": { + "description": "A sub property of participant. The owner of the real estate property.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + } + } + ] + }, + "realEstateAgent": { + "description": "A sub property of participant. The real estate agent involved in the action.", + "oneOf": [ + { "$ref": "schema:RealEstateAgent" }, + { "type": "array", "items": { "$ref": "schema:RealEstateAgent" } } + ] + } + } +} diff --git a/registry/schema-org/RentalCarReservation.schema.json b/registry/schema-org/RentalCarReservation.schema.json new file mode 100644 index 0000000..ae13909 --- /dev/null +++ b/registry/schema-org/RentalCarReservation.schema.json @@ -0,0 +1,49 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:RentalCarReservation", + "title": "RentalCarReservation", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "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]].", + "$ref": "schema:Reservation" + } + ], + "properties": { + "dropoffLocation": { + "description": "Where a rental car can be dropped off.", + "oneOf": [ + { "$ref": "schema:Place" }, + { "type": "array", "items": { "$ref": "schema:Place" } } + ] + }, + "dropoffTime": { + "description": "When a rental car can be dropped off.", + "oneOf": [ + { "type": "string", "format": "date-time" }, + { + "type": "array", + "items": { "type": "string", "format": "date-time" } + } + ] + }, + "pickupLocation": { + "description": "Where a taxi will pick up a passenger or a rental car can be picked up.", + "oneOf": [ + { "$ref": "schema:Place" }, + { "type": "array", "items": { "$ref": "schema:Place" } } + ] + }, + "pickupTime": { + "description": "When a taxi will pick up a passenger or a rental car can be picked up.", + "oneOf": [ + { "type": "string", "format": "date-time" }, + { + "type": "array", + "items": { "type": "string", "format": "date-time" } + } + ] + } + } +} diff --git a/registry/schema-org/RepaymentSpecification.schema.json b/registry/schema-org/RepaymentSpecification.schema.json new file mode 100644 index 0000000..c8fd9c6 --- /dev/null +++ b/registry/schema-org/RepaymentSpecification.schema.json @@ -0,0 +1,48 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:RepaymentSpecification", + "title": "RepaymentSpecification", + "description": "A structured value representing repayment.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:StructuredValue" + } + ], + "properties": { + "downPayment": { + "description": "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.", + "oneOf": [ + { + "anyOf": [{ "type": "number" }, { "$ref": "schema:MonetaryAmount" }] + }, + { + "type": "array", + "items": { + "anyOf": [{ "type": "number" }, { "$ref": "schema:MonetaryAmount" }] + } + } + ] + }, + "earlyPrepaymentPenalty": { + "description": "The amount to be paid as a penalty in the event of early payment of the loan.", + "$ref": "schema:MonetaryAmount" + }, + "loanPaymentAmount": { + "description": "The amount of money to pay in a single payment.", + "$ref": "schema:MonetaryAmount" + }, + "loanPaymentFrequency": { + "description": "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.", + "oneOf": [ + { "type": "number" }, + { "type": "array", "items": { "type": "number" } } + ] + }, + "numberOfLoanPayments": { + "description": "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.", + "type": "number" + } + } +} diff --git a/registry/schema-org/ReplaceAction.schema.json b/registry/schema-org/ReplaceAction.schema.json new file mode 100644 index 0000000..d0d0feb --- /dev/null +++ b/registry/schema-org/ReplaceAction.schema.json @@ -0,0 +1,29 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:ReplaceAction", + "title": "ReplaceAction", + "description": "The act of editing a recipient by replacing an old object with a new object.", + "type": "object", + "allOf": [ + { + "description": "The act of managing by changing/editing the state of the object.", + "$ref": "schema:UpdateAction" + } + ], + "properties": { + "replacee": { + "description": "A sub property of object. The object that is being replaced.", + "oneOf": [ + { "$ref": "schema:Thing" }, + { "type": "array", "items": { "$ref": "schema:Thing" } } + ] + }, + "replacer": { + "description": "A sub property of object. The object that replaces.", + "oneOf": [ + { "$ref": "schema:Thing" }, + { "type": "array", "items": { "$ref": "schema:Thing" } } + ] + } + } +} diff --git a/registry/schema-org/ReplyAction.schema.json b/registry/schema-org/ReplyAction.schema.json new file mode 100644 index 0000000..0410d3d --- /dev/null +++ b/registry/schema-org/ReplyAction.schema.json @@ -0,0 +1,22 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:ReplyAction", + "title": "ReplyAction", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "The act of conveying information to another person via a communication medium (instrument) such as speech, email, or telephone conversation.", + "$ref": "schema:CommunicateAction" + } + ], + "properties": { + "resultComment": { + "description": "A sub property of result. The Comment created or sent as a result of this action.", + "oneOf": [ + { "$ref": "schema:Comment" }, + { "type": "array", "items": { "$ref": "schema:Comment" } } + ] + } + } +} diff --git a/registry/schema-org/Report.schema.json b/registry/schema-org/Report.schema.json new file mode 100644 index 0000000..3e872ee --- /dev/null +++ b/registry/schema-org/Report.schema.json @@ -0,0 +1,19 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Report", + "title": "Report", + "description": "A Report generated by governmental or non-governmental organization.", + "type": "object", + "allOf": [ + { + "description": "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).", + "$ref": "schema:Article" + } + ], + "properties": { + "reportNumber": { + "description": "The number or other unique designator assigned to a Report by the publishing organization.", + "type": "string" + } + } +} diff --git a/registry/schema-org/ReportageNewsArticle.schema.json b/registry/schema-org/ReportageNewsArticle.schema.json new file mode 100644 index 0000000..cc32306 --- /dev/null +++ b/registry/schema-org/ReportageNewsArticle.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:ReportageNewsArticle", + "title": "ReportageNewsArticle", + "description": "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]].\n", + "type": "object", + "allOf": [ + { + "description": "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.\n", + "$ref": "schema:NewsArticle" + } + ] +} diff --git a/registry/schema-org/ReportedDoseSchedule.schema.json b/registry/schema-org/ReportedDoseSchedule.schema.json new file mode 100644 index 0000000..447951b --- /dev/null +++ b/registry/schema-org/ReportedDoseSchedule.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:ReportedDoseSchedule", + "title": "ReportedDoseSchedule", + "description": "A patient-reported or observed dosing schedule for a drug or supplement.", + "type": "object", + "allOf": [ + { + "description": "A specific dosing schedule for a drug or supplement.", + "$ref": "schema:DoseSchedule" + } + ] +} diff --git a/registry/schema-org/ResearchOrganization.schema.json b/registry/schema-org/ResearchOrganization.schema.json new file mode 100644 index 0000000..82e4d95 --- /dev/null +++ b/registry/schema-org/ResearchOrganization.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:ResearchOrganization", + "title": "ResearchOrganization", + "description": "A Research Organization (e.g. scientific institute, research company).", + "type": "object", + "allOf": [ + { + "description": "An organization such as a school, NGO, corporation, club, etc.", + "$ref": "schema:Organization" + } + ] +} diff --git a/registry/schema-org/ResearchProject.schema.json b/registry/schema-org/ResearchProject.schema.json new file mode 100644 index 0000000..0b85822 --- /dev/null +++ b/registry/schema-org/ResearchProject.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:ResearchProject", + "title": "ResearchProject", + "description": "A Research project.", + "type": "object", + "allOf": [ + { + "description": "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 ", + "$ref": "schema:Project" + } + ] +} diff --git a/registry/schema-org/Researcher.schema.json b/registry/schema-org/Researcher.schema.json new file mode 100644 index 0000000..1d9cb19 --- /dev/null +++ b/registry/schema-org/Researcher.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Researcher", + "title": "Researcher", + "description": "Researchers.", + "type": "object", + "allOf": [ + { + "description": "Intended audience for an item, i.e. the group for whom the item was created.", + "$ref": "schema:Audience" + } + ] +} diff --git a/registry/schema-org/Reservation.schema.json b/registry/schema-org/Reservation.schema.json new file mode 100644 index 0000000..85f7d5b --- /dev/null +++ b/registry/schema-org/Reservation.schema.json @@ -0,0 +1,114 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Reservation", + "title": "Reservation", + "description": "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]].", + "type": "object", + "allOf": [ + { + "description": "A utility class that serves as the umbrella for a number of 'intangible' things such as quantities, structured values, etc.", + "$ref": "schema:Intangible" + } + ], + "properties": { + "bookingAgent": { + "description": "'bookingAgent' is an out-dated term indicating a 'broker' that serves as a booking agent.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + } + } + ] + }, + "bookingTime": { + "description": "The date and time the reservation was booked.", + "type": "string", + "format": "date-time" + }, + "broker": { + "description": "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.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + } + } + ] + }, + "modifiedTime": { + "description": "The date and time the reservation was modified.", + "type": "string", + "format": "date-time" + }, + "priceCurrency": { + "description": "The currency of the price, or a price component when attached to [[PriceSpecification]] and its subtypes.\\n\\nUse standard formats: [ISO 4217 currency format](http://en.wikipedia.org/wiki/ISO_4217), e.g. \"USD\"; [Ticker symbol](https://en.wikipedia.org/wiki/List_of_cryptocurrencies) for cryptocurrencies, e.g. \"BTC\"; well known names for [Local Exchange Trading Systems](https://en.wikipedia.org/wiki/Local_exchange_trading_system) (LETS) and other currency types, e.g. \"Ithaca HOUR\".", + "type": "string" + }, + "programMembershipUsed": { + "description": "Any membership in a frequent flyer, hotel loyalty program, etc. being applied to the reservation.", + "oneOf": [ + { "$ref": "schema:ProgramMembership" }, + { "type": "array", "items": { "$ref": "schema:ProgramMembership" } } + ] + }, + "provider": { + "description": "The service provider, service operator, or service performer; the goods producer. Another party (a seller) may offer those services or goods on behalf of the provider. A provider may also serve as the seller.", + "anyOf": [{ "$ref": "schema:Organization" }, { "$ref": "schema:Person" }] + }, + "reservationFor": { + "description": "The thing -- flight, event, restaurant, etc. being reserved.", + "$ref": "schema:Thing" + }, + "reservationId": { + "description": "A unique identifier for the reservation.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "reservationStatus": { + "description": "The current status of the reservation.", + "$ref": "schema:ReservationStatusType" + }, + "reservedTicket": { + "description": "A ticket associated with the reservation.", + "oneOf": [ + { "$ref": "schema:Ticket" }, + { "type": "array", "items": { "$ref": "schema:Ticket" } } + ] + }, + "totalPrice": { + "description": "The total price for the reservation or ticket, including applicable taxes, shipping, etc.\\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.", + "anyOf": [ + { "type": "number" }, + { "type": "string" }, + { "$ref": "schema:PriceSpecification" } + ] + }, + "underName": { + "description": "The person or organization the reservation or ticket is for.", + "anyOf": [{ "$ref": "schema:Organization" }, { "$ref": "schema:Person" }] + } + } +} diff --git a/registry/schema-org/ReservationPackage.schema.json b/registry/schema-org/ReservationPackage.schema.json new file mode 100644 index 0000000..3c3c84e --- /dev/null +++ b/registry/schema-org/ReservationPackage.schema.json @@ -0,0 +1,19 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:ReservationPackage", + "title": "ReservationPackage", + "description": "A group of multiple reservations with common values for all sub-reservations.", + "type": "object", + "allOf": [ + { + "description": "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]].", + "$ref": "schema:Reservation" + } + ], + "properties": { + "subReservation": { + "description": "The individual reservations included in the package. Typically a repeated property.", + "$ref": "schema:Reservation" + } + } +} diff --git a/registry/schema-org/ReservationStatusType.schema.json b/registry/schema-org/ReservationStatusType.schema.json new file mode 100644 index 0000000..3133502 --- /dev/null +++ b/registry/schema-org/ReservationStatusType.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:ReservationStatusType", + "title": "ReservationStatusType", + "description": "Enumerated status values for Reservation.", + "type": "object", + "allOf": [ + { + "description": "Lists or enumerations dealing with status types.", + "$ref": "schema:StatusEnumeration" + } + ] +} diff --git a/registry/schema-org/ReserveAction.schema.json b/registry/schema-org/ReserveAction.schema.json new file mode 100644 index 0000000..50146f4 --- /dev/null +++ b/registry/schema-org/ReserveAction.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:ReserveAction", + "title": "ReserveAction", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "The act of planning the execution of an event/task/action/reservation/plan to a future date.", + "$ref": "schema:PlanAction" + } + ] +} diff --git a/registry/schema-org/Reservoir.schema.json b/registry/schema-org/Reservoir.schema.json new file mode 100644 index 0000000..924205a --- /dev/null +++ b/registry/schema-org/Reservoir.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Reservoir", + "title": "Reservoir", + "description": "A reservoir of water, typically an artificially created lake, like the Lake Kariba reservoir.", + "type": "object", + "allOf": [ + { + "description": "A body of water, such as a sea, ocean, or lake.", + "$ref": "schema:BodyOfWater" + } + ] +} diff --git a/registry/schema-org/Residence.schema.json b/registry/schema-org/Residence.schema.json new file mode 100644 index 0000000..04de9ad --- /dev/null +++ b/registry/schema-org/Residence.schema.json @@ -0,0 +1,22 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Residence", + "title": "Residence", + "description": "The place where a person lives.", + "type": "object", + "allOf": [ + { + "description": "Entities that have a somewhat fixed, physical extension.", + "$ref": "schema:Place" + } + ], + "properties": { + "accommodationFloorPlan": { + "description": "A floorplan of some [[Accommodation]].", + "oneOf": [ + { "$ref": "schema:FloorPlan" }, + { "type": "array", "items": { "$ref": "schema:FloorPlan" } } + ] + } + } +} diff --git a/registry/schema-org/Resort.schema.json b/registry/schema-org/Resort.schema.json new file mode 100644 index 0000000..bfbfa1e --- /dev/null +++ b/registry/schema-org/Resort.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Resort", + "title": "Resort", + "description": "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 ", + "type": "object", + "allOf": [ + { + "description": "A lodging business, such as a motel, hotel, or inn.", + "$ref": "schema:LodgingBusiness" + } + ] +} diff --git a/registry/schema-org/Restaurant.schema.json b/registry/schema-org/Restaurant.schema.json new file mode 100644 index 0000000..4000ff2 --- /dev/null +++ b/registry/schema-org/Restaurant.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Restaurant", + "title": "Restaurant", + "description": "A restaurant.", + "type": "object", + "allOf": [ + { + "description": "A food-related business.", + "$ref": "schema:FoodEstablishment" + } + ] +} diff --git a/registry/schema-org/RestrictedDiet.schema.json b/registry/schema-org/RestrictedDiet.schema.json new file mode 100644 index 0000000..a71d53f --- /dev/null +++ b/registry/schema-org/RestrictedDiet.schema.json @@ -0,0 +1,50 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:RestrictedDiet", + "title": "RestrictedDiet", + "description": "A diet restricted to certain foods or preparations for cultural, religious, health or lifestyle reasons. ", + "type": "string", + "oneOf": [ + { + "description": "A diet appropriate for people with diabetes.", + "const": "DiabeticDiet" + }, + { "description": "A diet exclusive of gluten.", "const": "GlutenFreeDiet" }, + { + "description": "A diet conforming to Islamic dietary practices.", + "const": "HalalDiet" + }, + { + "description": "A diet conforming to Hindu dietary practices, in particular, beef-free.", + "const": "HinduDiet" + }, + { + "description": "A diet conforming to Jewish dietary practices.", + "const": "KosherDiet" + }, + { + "description": "A diet focused on reduced calorie intake.", + "const": "LowCalorieDiet" + }, + { + "description": "A diet focused on reduced fat and cholesterol intake.", + "const": "LowFatDiet" + }, + { + "description": "A diet appropriate for people with lactose intolerance.", + "const": "LowLactoseDiet" + }, + { + "description": "A diet focused on reduced sodium intake.", + "const": "LowSaltDiet" + }, + { + "description": "A diet exclusive of all animal products.", + "const": "VeganDiet" + }, + { + "description": "A diet exclusive of animal meat.", + "const": "VegetarianDiet" + } + ] +} diff --git a/registry/schema-org/ResumeAction.schema.json b/registry/schema-org/ResumeAction.schema.json new file mode 100644 index 0000000..fd4906c --- /dev/null +++ b/registry/schema-org/ResumeAction.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:ResumeAction", + "title": "ResumeAction", + "description": "The act of resuming a device or application which was formerly paused (e.g. resume music playback or resume a timer).", + "type": "object", + "allOf": [ + { + "description": "An agent controls a device or application.", + "$ref": "schema:ControlAction" + } + ] +} diff --git a/registry/schema-org/ReturnAction.schema.json b/registry/schema-org/ReturnAction.schema.json new file mode 100644 index 0000000..193a27e --- /dev/null +++ b/registry/schema-org/ReturnAction.schema.json @@ -0,0 +1,39 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:ReturnAction", + "title": "ReturnAction", + "description": "The act of returning to the origin that which was previously received (concrete objects) or taken (ownership).", + "type": "object", + "allOf": [ + { + "description": "The act of transferring/moving (abstract or concrete) animate or inanimate objects from one place to another.", + "$ref": "schema:TransferAction" + } + ], + "properties": { + "recipient": { + "description": "A sub property of participant. The participant who is at the receiving end of the action.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:Audience" }, + { "$ref": "schema:ContactPoint" }, + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:Audience" }, + { "$ref": "schema:ContactPoint" }, + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + } + } + ] + } + } +} diff --git a/registry/schema-org/ReturnFeesEnumeration.schema.json b/registry/schema-org/ReturnFeesEnumeration.schema.json new file mode 100644 index 0000000..2b22d48 --- /dev/null +++ b/registry/schema-org/ReturnFeesEnumeration.schema.json @@ -0,0 +1,29 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:ReturnFeesEnumeration", + "title": "ReturnFeesEnumeration", + "description": "Enumerates several kinds of policies for product return fees.", + "type": "string", + "oneOf": [ + { + "description": "Specifies that product returns are free of charge for the customer.", + "const": "FreeReturn" + }, + { + "description": "Specifies that the customer must pay the original shipping costs when returning a product.", + "const": "OriginalShippingFees" + }, + { + "description": "Specifies that the customer must pay a restocking fee when returning a product.", + "const": "RestockingFees" + }, + { + "description": "Specifies that product returns must be paid for, and are the responsibility of, the customer.", + "const": "ReturnFeesCustomerResponsibility" + }, + { + "description": "Specifies that the customer must pay the return shipping costs when returning a product.", + "const": "ReturnShippingFees" + } + ] +} diff --git a/registry/schema-org/ReturnLabelSourceEnumeration.schema.json b/registry/schema-org/ReturnLabelSourceEnumeration.schema.json new file mode 100644 index 0000000..2934ad7 --- /dev/null +++ b/registry/schema-org/ReturnLabelSourceEnumeration.schema.json @@ -0,0 +1,21 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:ReturnLabelSourceEnumeration", + "title": "ReturnLabelSourceEnumeration", + "description": "Enumerates several types of return labels for product returns.", + "type": "string", + "oneOf": [ + { + "description": "Indicated that creating a return label is the responsibility of the customer.", + "const": "ReturnLabelCustomerResponsibility" + }, + { + "description": "Indicated that a return label must be downloaded and printed by the customer.", + "const": "ReturnLabelDownloadAndPrint" + }, + { + "description": "Specifies that a return label will be provided by the seller in the shipping box.", + "const": "ReturnLabelInBox" + } + ] +} diff --git a/registry/schema-org/ReturnMethodEnumeration.schema.json b/registry/schema-org/ReturnMethodEnumeration.schema.json new file mode 100644 index 0000000..94b9d3e --- /dev/null +++ b/registry/schema-org/ReturnMethodEnumeration.schema.json @@ -0,0 +1,25 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:ReturnMethodEnumeration", + "title": "ReturnMethodEnumeration", + "description": "Enumerates several types of product return methods.", + "type": "string", + "oneOf": [ + { + "description": "Specifies that the consumer can keep the product, even when receiving a refund or store credit.", + "const": "KeepProduct" + }, + { + "description": "Specifies that product returns must be made at a kiosk.", + "const": "ReturnAtKiosk" + }, + { + "description": "Specifies that product returns must be done by mail.", + "const": "ReturnByMail" + }, + { + "description": "Specifies that product returns must be made in a store.", + "const": "ReturnInStore" + } + ] +} diff --git a/registry/schema-org/Review.schema.json b/registry/schema-org/Review.schema.json new file mode 100644 index 0000000..380f1d9 --- /dev/null +++ b/registry/schema-org/Review.schema.json @@ -0,0 +1,103 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Review", + "title": "Review", + "description": "A review of an item - for example, of a restaurant, movie, or store.", + "type": "object", + "allOf": [ + { + "description": "The most generic kind of creative work, including books, movies, photographs, software programs, etc.", + "$ref": "schema:CreativeWork" + } + ], + "properties": { + "associatedClaimReview": { + "description": "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]].", + "oneOf": [ + { "$ref": "schema:Review" }, + { "type": "array", "items": { "$ref": "schema:Review" } } + ] + }, + "associatedMediaReview": { + "description": "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]].", + "oneOf": [ + { "$ref": "schema:Review" }, + { "type": "array", "items": { "$ref": "schema:Review" } } + ] + }, + "associatedReview": { + "description": "An associated [[Review]].", + "oneOf": [ + { "$ref": "schema:Review" }, + { "type": "array", "items": { "$ref": "schema:Review" } } + ] + }, + "itemReviewed": { + "description": "The item that is being reviewed/rated.", + "$ref": "schema:Thing" + }, + "negativeNotes": { + "description": "Provides negative considerations regarding something, most typically in pro/con lists for reviews (alongside [[positiveNotes]]). For symmetry \n\nIn 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 \ntend 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]].\n\nThe 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).", + "oneOf": [ + { + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:ItemList" }, + { "$ref": "schema:ListItem" }, + { "$ref": "schema:WebContent" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:ItemList" }, + { "$ref": "schema:ListItem" }, + { "$ref": "schema:WebContent" } + ] + } + } + ] + }, + "positiveNotes": { + "description": "Provides positive considerations regarding something, for example product highlights or (alongside [[negativeNotes]]) pro/con lists for reviews.\n\nIn 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.\n\nThe 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).", + "oneOf": [ + { + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:ItemList" }, + { "$ref": "schema:ListItem" }, + { "$ref": "schema:WebContent" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:ItemList" }, + { "$ref": "schema:ListItem" }, + { "$ref": "schema:WebContent" } + ] + } + } + ] + }, + "reviewAspect": { + "description": "This Review or Rating is relevant to this part or facet of the itemReviewed.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "reviewBody": { + "description": "The actual body of the review.", + "type": "string" + }, + "reviewRating": { + "description": "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.", + "$ref": "schema:Rating" + } + } +} diff --git a/registry/schema-org/ReviewAction.schema.json b/registry/schema-org/ReviewAction.schema.json new file mode 100644 index 0000000..2f56f70 --- /dev/null +++ b/registry/schema-org/ReviewAction.schema.json @@ -0,0 +1,22 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:ReviewAction", + "title": "ReviewAction", + "description": "The act of producing a balanced opinion about the object for an audience. An agent reviews an object with participants resulting in a review.", + "type": "object", + "allOf": [ + { + "description": "The act of forming one's opinion, reaction or sentiment.", + "$ref": "schema:AssessAction" + } + ], + "properties": { + "resultReview": { + "description": "A sub property of result. The review that resulted in the performing of the action.", + "oneOf": [ + { "$ref": "schema:Review" }, + { "type": "array", "items": { "$ref": "schema:Review" } } + ] + } + } +} diff --git a/registry/schema-org/ReviewNewsArticle.schema.json b/registry/schema-org/ReviewNewsArticle.schema.json new file mode 100644 index 0000000..202058f --- /dev/null +++ b/registry/schema-org/ReviewNewsArticle.schema.json @@ -0,0 +1,17 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:ReviewNewsArticle", + "title": "ReviewNewsArticle", + "description": "A [[NewsArticle]] and [[CriticReview]] providing a professional critic's assessment of a service, product, performance, or artistic or literary work.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:CriticReview" + }, + { + "description": "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.\n", + "$ref": "schema:NewsArticle" + } + ] +} diff --git a/registry/schema-org/RiverBodyOfWater.schema.json b/registry/schema-org/RiverBodyOfWater.schema.json new file mode 100644 index 0000000..275eea1 --- /dev/null +++ b/registry/schema-org/RiverBodyOfWater.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:RiverBodyOfWater", + "title": "RiverBodyOfWater", + "description": "A river (for example, the broad majestic Shannon).", + "type": "object", + "allOf": [ + { + "description": "A body of water, such as a sea, ocean, or lake.", + "$ref": "schema:BodyOfWater" + } + ] +} diff --git a/registry/schema-org/Role.schema.json b/registry/schema-org/Role.schema.json new file mode 100644 index 0000000..2c6aa59 --- /dev/null +++ b/registry/schema-org/Role.schema.json @@ -0,0 +1,63 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Role", + "title": "Role", + "description": "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).", + "type": "object", + "allOf": [ + { + "description": "A utility class that serves as the umbrella for a number of 'intangible' things such as quantities, structured values, etc.", + "$ref": "schema:Intangible" + } + ], + "properties": { + "endDate": { + "description": "The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).", + "anyOf": [ + { "type": "string", "format": "date" }, + { "type": "string", "format": "date-time" } + ] + }, + "namedPosition": { + "description": "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'.", + "oneOf": [ + { + "anyOf": [{ "type": "string", "format": "uri" }, { "type": "string" }] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" } + ] + } + } + ] + }, + "roleName": { + "description": "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'.", + "oneOf": [ + { + "anyOf": [{ "type": "string", "format": "uri" }, { "type": "string" }] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" } + ] + } + } + ] + }, + "startDate": { + "description": "The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).", + "anyOf": [ + { "type": "string", "format": "date" }, + { "type": "string", "format": "date-time" } + ] + } + } +} diff --git a/registry/schema-org/RoofingContractor.schema.json b/registry/schema-org/RoofingContractor.schema.json new file mode 100644 index 0000000..43cfd55 --- /dev/null +++ b/registry/schema-org/RoofingContractor.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:RoofingContractor", + "title": "RoofingContractor", + "description": "A roofing contractor.", + "type": "object", + "allOf": [ + { + "description": "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).", + "$ref": "schema:HomeAndConstructionBusiness" + } + ] +} diff --git a/registry/schema-org/Room.schema.json b/registry/schema-org/Room.schema.json new file mode 100644 index 0000000..9abc7ec --- /dev/null +++ b/registry/schema-org/Room.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Room", + "title": "Room", + "description": "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.\n", + "type": "object", + "allOf": [ + { + "description": "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.\n", + "$ref": "schema:Accommodation" + } + ] +} diff --git a/registry/schema-org/RsvpAction.schema.json b/registry/schema-org/RsvpAction.schema.json new file mode 100644 index 0000000..61ff941 --- /dev/null +++ b/registry/schema-org/RsvpAction.schema.json @@ -0,0 +1,33 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:RsvpAction", + "title": "RsvpAction", + "description": "The act of notifying an event organizer as to whether you expect to attend the event.", + "type": "object", + "allOf": [ + { + "description": "The act of notifying someone of information pertinent to them, with no expectation of a response.", + "$ref": "schema:InformAction" + } + ], + "properties": { + "additionalNumberOfGuests": { + "description": "If responding yes, the number of guests who will attend in addition to the invitee.", + "oneOf": [ + { "type": "number" }, + { "type": "array", "items": { "type": "number" } } + ] + }, + "comment": { + "description": "Comments, typically from users.", + "oneOf": [ + { "$ref": "schema:Comment" }, + { "type": "array", "items": { "$ref": "schema:Comment" } } + ] + }, + "rsvpResponse": { + "description": "The response (yes, no, maybe) to the RSVP.", + "$ref": "schema:RsvpResponseType" + } + } +} diff --git a/registry/schema-org/RsvpResponseType.schema.json b/registry/schema-org/RsvpResponseType.schema.json new file mode 100644 index 0000000..ff7aead --- /dev/null +++ b/registry/schema-org/RsvpResponseType.schema.json @@ -0,0 +1,18 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:RsvpResponseType", + "title": "RsvpResponseType", + "description": "RsvpResponseType is an enumeration type whose instances represent responding to an RSVP request.", + "type": "string", + "oneOf": [ + { + "description": "The invitee may or may not attend.", + "const": "RsvpResponseMaybe" + }, + { + "description": "The invitee will not attend.", + "const": "RsvpResponseNo" + }, + { "description": "The invitee will attend.", "const": "RsvpResponseYes" } + ] +} diff --git a/registry/schema-org/SaleEvent.schema.json b/registry/schema-org/SaleEvent.schema.json new file mode 100644 index 0000000..5e33b31 --- /dev/null +++ b/registry/schema-org/SaleEvent.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:SaleEvent", + "title": "SaleEvent", + "description": "Event type: Sales event.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:Event" + } + ] +} diff --git a/registry/schema-org/SatiricalArticle.schema.json b/registry/schema-org/SatiricalArticle.schema.json new file mode 100644 index 0000000..cf324cc --- /dev/null +++ b/registry/schema-org/SatiricalArticle.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:SatiricalArticle", + "title": "SatiricalArticle", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "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).", + "$ref": "schema:Article" + } + ] +} diff --git a/registry/schema-org/Schedule.schema.json b/registry/schema-org/Schedule.schema.json new file mode 100644 index 0000000..0783780 --- /dev/null +++ b/registry/schema-org/Schedule.schema.json @@ -0,0 +1,137 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Schedule", + "title": "Schedule", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "A utility class that serves as the umbrella for a number of 'intangible' things such as quantities, structured values, etc.", + "$ref": "schema:Intangible" + } + ], + "properties": { + "byDay": { + "description": "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.", + "oneOf": [ + { "anyOf": [{ "type": "string" }, { "$ref": "schema:DayOfWeek" }] }, + { + "type": "array", + "items": { + "anyOf": [{ "type": "string" }, { "$ref": "schema:DayOfWeek" }] + } + } + ] + }, + "byMonth": { + "description": "Defines the month(s) of the year on which a recurring [[Event]] takes place. Specified as an [[Integer]] between 1-12. January is 1.", + "oneOf": [ + { "type": "integer" }, + { "type": "array", "items": { "type": "integer" } } + ] + }, + "byMonthDay": { + "description": "Defines the day(s) of the month on which a recurring [[Event]] takes place. Specified as an [[Integer]] between 1-31.", + "oneOf": [ + { "type": "integer" }, + { "type": "array", "items": { "type": "integer" } } + ] + }, + "byMonthWeek": { + "description": "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.", + "oneOf": [ + { "type": "integer" }, + { "type": "array", "items": { "type": "integer" } } + ] + }, + "duration": { + "description": "The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 duration format](http://en.wikipedia.org/wiki/ISO_8601).", + "anyOf": [ + { "type": "string", "$comment": "https://schema.org/Duration" }, + { "$ref": "schema:QuantitativeValue" } + ] + }, + "endDate": { + "description": "The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).", + "anyOf": [ + { "type": "string", "format": "date" }, + { "type": "string", "format": "date-time" } + ] + }, + "endTime": { + "description": "The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it's the time offset of the end of a clip within a larger file.\\n\\nNote that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.", + "anyOf": [ + { "type": "string", "format": "date-time" }, + { "type": "string", "format": "time" } + ] + }, + "exceptDate": { + "description": "Defines a [[Date]] or [[DateTime]] during which a scheduled [[Event]] will not take place. The property allows exceptions to\n 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\n 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\n excluded from the schedule. This allows a whole day to be excluded from the schedule without having to itemise every scheduled event.", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "date" }, + { "type": "string", "format": "date-time" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "date" }, + { "type": "string", "format": "date-time" } + ] + } + } + ] + }, + "repeatCount": { + "description": "Defines the number of times a recurring [[Event]] will take place.", + "oneOf": [ + { "type": "integer" }, + { "type": "array", "items": { "type": "integer" } } + ] + }, + "repeatFrequency": { + "description": "Defines the frequency at which [[Event]]s will occur according to a schedule [[Schedule]]. The intervals between\n events should be defined as a [[Duration]] of time.", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "$comment": "https://schema.org/Duration" }, + { "type": "string" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "$comment": "https://schema.org/Duration" }, + { "type": "string" } + ] + } + } + ] + }, + "scheduleTimezone": { + "description": "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.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "startDate": { + "description": "The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).", + "anyOf": [ + { "type": "string", "format": "date" }, + { "type": "string", "format": "date-time" } + ] + }, + "startTime": { + "description": "The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it's the time offset of the start of a clip within a larger file.\\n\\nNote that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.", + "anyOf": [ + { "type": "string", "format": "date-time" }, + { "type": "string", "format": "time" } + ] + } + } +} diff --git a/registry/schema-org/ScheduleAction.schema.json b/registry/schema-org/ScheduleAction.schema.json new file mode 100644 index 0000000..b6399ff --- /dev/null +++ b/registry/schema-org/ScheduleAction.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:ScheduleAction", + "title": "ScheduleAction", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "The act of planning the execution of an event/task/action/reservation/plan to a future date.", + "$ref": "schema:PlanAction" + } + ] +} diff --git a/registry/schema-org/ScholarlyArticle.schema.json b/registry/schema-org/ScholarlyArticle.schema.json new file mode 100644 index 0000000..2ae53a9 --- /dev/null +++ b/registry/schema-org/ScholarlyArticle.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:ScholarlyArticle", + "title": "ScholarlyArticle", + "description": "A scholarly article.", + "type": "object", + "allOf": [ + { + "description": "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).", + "$ref": "schema:Article" + } + ] +} diff --git a/registry/schema-org/School.schema.json b/registry/schema-org/School.schema.json new file mode 100644 index 0000000..605b2fa --- /dev/null +++ b/registry/schema-org/School.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:School", + "title": "School", + "description": "A school.", + "type": "object", + "allOf": [ + { + "description": "An educational organization.", + "$ref": "schema:EducationalOrganization" + } + ] +} diff --git a/registry/schema-org/SchoolDistrict.schema.json b/registry/schema-org/SchoolDistrict.schema.json new file mode 100644 index 0000000..9989a23 --- /dev/null +++ b/registry/schema-org/SchoolDistrict.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:SchoolDistrict", + "title": "SchoolDistrict", + "description": "A School District is an administrative area for the administration of schools.", + "type": "object", + "allOf": [ + { + "description": "A geographical region, typically under the jurisdiction of a particular government.", + "$ref": "schema:AdministrativeArea" + } + ] +} diff --git a/registry/schema-org/ScreeningEvent.schema.json b/registry/schema-org/ScreeningEvent.schema.json new file mode 100644 index 0000000..1ec92d6 --- /dev/null +++ b/registry/schema-org/ScreeningEvent.schema.json @@ -0,0 +1,35 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:ScreeningEvent", + "title": "ScreeningEvent", + "description": "A screening of a movie or other video.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:Event" + } + ], + "properties": { + "subtitleLanguage": { + "description": "Languages in which subtitles/captions are available, in [IETF BCP 47 standard format](http://tools.ietf.org/html/bcp47).", + "oneOf": [ + { "anyOf": [{ "type": "string" }, { "$ref": "schema:Language" }] }, + { + "type": "array", + "items": { + "anyOf": [{ "type": "string" }, { "$ref": "schema:Language" }] + } + } + ] + }, + "videoFormat": { + "description": "The type of screening or video broadcast used (e.g. IMAX, 3D, SD, HD, etc.).", + "type": "string" + }, + "workPresented": { + "description": "The movie presented during this event.", + "$ref": "schema:Movie" + } + } +} diff --git a/registry/schema-org/Sculpture.schema.json b/registry/schema-org/Sculpture.schema.json new file mode 100644 index 0000000..89a8f29 --- /dev/null +++ b/registry/schema-org/Sculpture.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Sculpture", + "title": "Sculpture", + "description": "A piece of sculpture.", + "type": "object", + "allOf": [ + { + "description": "The most generic kind of creative work, including books, movies, photographs, software programs, etc.", + "$ref": "schema:CreativeWork" + } + ] +} diff --git a/registry/schema-org/SeaBodyOfWater.schema.json b/registry/schema-org/SeaBodyOfWater.schema.json new file mode 100644 index 0000000..c268e6c --- /dev/null +++ b/registry/schema-org/SeaBodyOfWater.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:SeaBodyOfWater", + "title": "SeaBodyOfWater", + "description": "A sea (for example, the Caspian sea).", + "type": "object", + "allOf": [ + { + "description": "A body of water, such as a sea, ocean, or lake.", + "$ref": "schema:BodyOfWater" + } + ] +} diff --git a/registry/schema-org/SearchAction.schema.json b/registry/schema-org/SearchAction.schema.json new file mode 100644 index 0000000..6159439 --- /dev/null +++ b/registry/schema-org/SearchAction.schema.json @@ -0,0 +1,22 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:SearchAction", + "title": "SearchAction", + "description": "The act of searching for an object.\\n\\nRelated actions:\\n\\n* [[FindAction]]: SearchAction generally leads to a FindAction, but not necessarily.", + "type": "object", + "allOf": [ + { + "description": "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).", + "$ref": "schema:Action" + } + ], + "properties": { + "query": { + "description": "A sub property of instrument. The query used on this action.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + } + } +} diff --git a/registry/schema-org/SearchRescueOrganization.schema.json b/registry/schema-org/SearchRescueOrganization.schema.json new file mode 100644 index 0000000..61460bc --- /dev/null +++ b/registry/schema-org/SearchRescueOrganization.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:SearchRescueOrganization", + "title": "SearchRescueOrganization", + "description": "A Search and Rescue organization of some kind.", + "type": "object", + "allOf": [ + { + "description": "An organization such as a school, NGO, corporation, club, etc.", + "$ref": "schema:Organization" + } + ] +} diff --git a/registry/schema-org/SearchResultsPage.schema.json b/registry/schema-org/SearchResultsPage.schema.json new file mode 100644 index 0000000..e3529d9 --- /dev/null +++ b/registry/schema-org/SearchResultsPage.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:SearchResultsPage", + "title": "SearchResultsPage", + "description": "Web page type: Search results page.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:WebPage" + } + ] +} diff --git a/registry/schema-org/Season.schema.json b/registry/schema-org/Season.schema.json new file mode 100644 index 0000000..174eb0f --- /dev/null +++ b/registry/schema-org/Season.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Season", + "title": "Season", + "description": "A media season, e.g. TV, radio, video game etc.", + "type": "object", + "allOf": [ + { + "description": "The most generic kind of creative work, including books, movies, photographs, software programs, etc.", + "$ref": "schema:CreativeWork" + } + ] +} diff --git a/registry/schema-org/Seat.schema.json b/registry/schema-org/Seat.schema.json new file mode 100644 index 0000000..b094477 --- /dev/null +++ b/registry/schema-org/Seat.schema.json @@ -0,0 +1,31 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Seat", + "title": "Seat", + "description": "Used to describe a seat, such as a reserved seat in an event reservation.", + "type": "object", + "allOf": [ + { + "description": "A utility class that serves as the umbrella for a number of 'intangible' things such as quantities, structured values, etc.", + "$ref": "schema:Intangible" + } + ], + "properties": { + "seatNumber": { + "description": "The location of the reserved seat (e.g., 27).", + "type": "string" + }, + "seatRow": { + "description": "The row location of the reserved seat (e.g., B).", + "type": "string" + }, + "seatSection": { + "description": "The section location of the reserved seat (e.g. Orchestra).", + "type": "string" + }, + "seatingType": { + "description": "The type/class of the seat.", + "anyOf": [{ "type": "string" }, { "$ref": "schema:QualitativeValue" }] + } + } +} diff --git a/registry/schema-org/SeekToAction.schema.json b/registry/schema-org/SeekToAction.schema.json new file mode 100644 index 0000000..9cf78d0 --- /dev/null +++ b/registry/schema-org/SeekToAction.schema.json @@ -0,0 +1,19 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:SeekToAction", + "title": "SeekToAction", + "description": "This is the [[Action]] of navigating to a specific [[startOffset]] timestamp within a [[VideoObject]], typically represented with a URL template structure.", + "type": "object", + "allOf": [ + { + "description": "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).", + "$ref": "schema:Action" + } + ], + "properties": { + "startOffset": { + "description": "The start time of the clip expressed as the number of seconds from the beginning of the work.", + "anyOf": [{ "type": "number" }, { "$ref": "schema:HyperTocEntry" }] + } + } +} diff --git a/registry/schema-org/SelfStorage.schema.json b/registry/schema-org/SelfStorage.schema.json new file mode 100644 index 0000000..5570129 --- /dev/null +++ b/registry/schema-org/SelfStorage.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:SelfStorage", + "title": "SelfStorage", + "description": "A self-storage facility.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:LocalBusiness" + } + ] +} diff --git a/registry/schema-org/SellAction.schema.json b/registry/schema-org/SellAction.schema.json new file mode 100644 index 0000000..9af2292 --- /dev/null +++ b/registry/schema-org/SellAction.schema.json @@ -0,0 +1,39 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:SellAction", + "title": "SellAction", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:TradeAction" + } + ], + "properties": { + "buyer": { + "description": "A sub property of participant. The participant/person/organization that bought the object.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + } + } + ] + }, + "warrantyPromise": { + "description": "The warranty promise(s) included in the offer.", + "$ref": "schema:WarrantyPromise" + } + } +} diff --git a/registry/schema-org/SendAction.schema.json b/registry/schema-org/SendAction.schema.json new file mode 100644 index 0000000..af83831 --- /dev/null +++ b/registry/schema-org/SendAction.schema.json @@ -0,0 +1,46 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:SendAction", + "title": "SendAction", + "description": "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).", + "type": "object", + "allOf": [ + { + "description": "The act of transferring/moving (abstract or concrete) animate or inanimate objects from one place to another.", + "$ref": "schema:TransferAction" + } + ], + "properties": { + "deliveryMethod": { + "description": "A sub property of instrument. The method of delivery.", + "oneOf": [ + { "$ref": "schema:DeliveryMethod" }, + { "type": "array", "items": { "$ref": "schema:DeliveryMethod" } } + ] + }, + "recipient": { + "description": "A sub property of participant. The participant who is at the receiving end of the action.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:Audience" }, + { "$ref": "schema:ContactPoint" }, + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:Audience" }, + { "$ref": "schema:ContactPoint" }, + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + } + } + ] + } + } +} diff --git a/registry/schema-org/Series.schema.json b/registry/schema-org/Series.schema.json new file mode 100644 index 0000000..e22e8e4 --- /dev/null +++ b/registry/schema-org/Series.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Series", + "title": "Series", + "description": "A Series in schema.org is a group of related items, typically but not necessarily of the same kind. See also [[CreativeWorkSeries]], [[EventSeries]].", + "type": "object", + "allOf": [ + { + "description": "A utility class that serves as the umbrella for a number of 'intangible' things such as quantities, structured values, etc.", + "$ref": "schema:Intangible" + } + ] +} diff --git a/registry/schema-org/Service.schema.json b/registry/schema-org/Service.schema.json new file mode 100644 index 0000000..9c9a3f6 --- /dev/null +++ b/registry/schema-org/Service.schema.json @@ -0,0 +1,249 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Service", + "title": "Service", + "description": "A service provided by an organization, e.g. delivery service, print services, etc.", + "type": "object", + "allOf": [ + { + "description": "A utility class that serves as the umbrella for a number of 'intangible' things such as quantities, structured values, etc.", + "$ref": "schema:Intangible" + } + ], + "properties": { + "aggregateRating": { + "description": "The overall rating, based on a collection of reviews or ratings, of the item.", + "$ref": "schema:AggregateRating" + }, + "areaServed": { + "description": "The geographic area where a service or offered item is provided.", + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:AdministrativeArea" }, + { "$ref": "schema:GeoShape" }, + { "$ref": "schema:Place" } + ] + }, + "audience": { + "description": "An intended audience, i.e. a group for whom something was created.", + "$ref": "schema:Audience" + }, + "availableChannel": { + "description": "A means of accessing the service (e.g. a phone bank, a web site, a location, etc.).", + "oneOf": [ + { "$ref": "schema:ServiceChannel" }, + { "type": "array", "items": { "$ref": "schema:ServiceChannel" } } + ] + }, + "award": { + "description": "An award won by or for this item.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "brand": { + "description": "The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.", + "anyOf": [{ "$ref": "schema:Brand" }, { "$ref": "schema:Organization" }] + }, + "broker": { + "description": "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.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + } + } + ] + }, + "category": { + "description": "A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:CategoryCode" }, + { "$ref": "schema:PhysicalActivityCategory" }, + { "$ref": "schema:Thing" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:CategoryCode" }, + { "$ref": "schema:PhysicalActivityCategory" }, + { "$ref": "schema:Thing" } + ] + } + } + ] + }, + "hasCertification": { + "description": "Certification information about a product, organization, service, place, or person.", + "oneOf": [ + { "$ref": "schema:Certification" }, + { "type": "array", "items": { "$ref": "schema:Certification" } } + ] + }, + "hasOfferCatalog": { + "description": "Indicates an OfferCatalog listing for this Organization, Person, or Service.", + "oneOf": [ + { "$ref": "schema:OfferCatalog" }, + { "type": "array", "items": { "$ref": "schema:OfferCatalog" } } + ] + }, + "hoursAvailable": { + "description": "The hours during which this service or contact is available.", + "$ref": "schema:OpeningHoursSpecification" + }, + "isRelatedTo": { + "description": "A pointer to another, somehow related product (or multiple products).", + "oneOf": [ + { + "anyOf": [{ "$ref": "schema:Product" }, { "$ref": "schema:Service" }] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:Product" }, + { "$ref": "schema:Service" } + ] + } + } + ] + }, + "isSimilarTo": { + "description": "A pointer to another, functionally similar product (or multiple products).", + "oneOf": [ + { + "anyOf": [{ "$ref": "schema:Product" }, { "$ref": "schema:Service" }] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:Product" }, + { "$ref": "schema:Service" } + ] + } + } + ] + }, + "logo": { + "description": "An associated logo.", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:ImageObject" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:ImageObject" } + ] + } + } + ] + }, + "offers": { + "description": "An offer to provide this item—for example, an offer to sell a product, rent the DVD of a movie, perform a service, or give away tickets to an event. Use [[businessFunction]] to indicate the kind of transaction offered, i.e. sell, lease, etc. This property can also be used to describe a [[Demand]]. While this property is listed as expected on a number of common types, it can be used in others. In that case, using a second type, such as Product or a subtype of Product, can clarify the nature of the offer.\n ", + "oneOf": [ + { "anyOf": [{ "$ref": "schema:Demand" }, { "$ref": "schema:Offer" }] }, + { + "type": "array", + "items": { + "anyOf": [{ "$ref": "schema:Demand" }, { "$ref": "schema:Offer" }] + } + } + ] + }, + "produces": { + "description": "The tangible thing generated by the service, e.g. a passport, permit, etc.", + "$ref": "schema:Thing" + }, + "provider": { + "description": "The service provider, service operator, or service performer; the goods producer. Another party (a seller) may offer those services or goods on behalf of the provider. A provider may also serve as the seller.", + "anyOf": [{ "$ref": "schema:Organization" }, { "$ref": "schema:Person" }] + }, + "providerMobility": { + "description": "Indicates the mobility of a provided service (e.g. 'static', 'dynamic').", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "review": { + "description": "A review of the item.", + "oneOf": [ + { "$ref": "schema:Review" }, + { "type": "array", "items": { "$ref": "schema:Review" } } + ] + }, + "serviceArea": { + "description": "The geographic area where the service is provided.", + "anyOf": [ + { "$ref": "schema:AdministrativeArea" }, + { "$ref": "schema:GeoShape" }, + { "$ref": "schema:Place" } + ] + }, + "serviceAudience": { + "description": "The audience eligible for this service.", + "$ref": "schema:Audience" + }, + "serviceOutput": { + "description": "The tangible thing generated by the service, e.g. a passport, permit, etc.", + "$ref": "schema:Thing" + }, + "serviceType": { + "description": "The type of service being offered, e.g. veterans' benefits, emergency relief, etc.", + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:GovernmentBenefitsType" } + ] + }, + "slogan": { + "description": "A slogan or motto associated with the item.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "termsOfService": { + "description": "Human-readable terms of service documentation.", + "oneOf": [ + { + "anyOf": [{ "type": "string", "format": "uri" }, { "type": "string" }] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" } + ] + } + } + ] + } + } +} diff --git a/registry/schema-org/ServiceChannel.schema.json b/registry/schema-org/ServiceChannel.schema.json new file mode 100644 index 0000000..11fc27f --- /dev/null +++ b/registry/schema-org/ServiceChannel.schema.json @@ -0,0 +1,57 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:ServiceChannel", + "title": "ServiceChannel", + "description": "A means for accessing a service, e.g. a government office location, web site, or phone number.", + "type": "object", + "allOf": [ + { + "description": "A utility class that serves as the umbrella for a number of 'intangible' things such as quantities, structured values, etc.", + "$ref": "schema:Intangible" + } + ], + "properties": { + "availableLanguage": { + "description": "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]].", + "oneOf": [ + { "anyOf": [{ "type": "string" }, { "$ref": "schema:Language" }] }, + { + "type": "array", + "items": { + "anyOf": [{ "type": "string" }, { "$ref": "schema:Language" }] + } + } + ] + }, + "processingTime": { + "description": "Estimated processing time for the service using this channel.", + "type": "string", + "$comment": "https://schema.org/Duration" + }, + "providesService": { + "description": "The service provided by this channel.", + "$ref": "schema:Service" + }, + "serviceLocation": { + "description": "The location (e.g. civic structure, local business, etc.) where a person can go to access the service.", + "$ref": "schema:Place" + }, + "servicePhone": { + "description": "The phone number to use to access the service.", + "$ref": "schema:ContactPoint" + }, + "servicePostalAddress": { + "description": "The address for accessing the service by mail.", + "$ref": "schema:PostalAddress" + }, + "serviceSmsNumber": { + "description": "The number to access the service by text message.", + "$ref": "schema:ContactPoint" + }, + "serviceUrl": { + "description": "The website to access the service.", + "type": "string", + "format": "uri" + } + } +} diff --git a/registry/schema-org/ServicePeriod.schema.json b/registry/schema-org/ServicePeriod.schema.json new file mode 100644 index 0000000..661ceeb --- /dev/null +++ b/registry/schema-org/ServicePeriod.schema.json @@ -0,0 +1,49 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:ServicePeriod", + "title": "ServicePeriod", + "description": "ServicePeriod represents a duration with some constraints about cutoff time and business days. This is used e.g. in shipping for handling times or transit time.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:StructuredValue" + } + ], + "properties": { + "businessDays": { + "description": "Days of the week when the merchant typically operates, indicated via opening hours markup.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:DayOfWeek" }, + { "$ref": "schema:OpeningHoursSpecification" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:DayOfWeek" }, + { "$ref": "schema:OpeningHoursSpecification" } + ] + } + } + ] + }, + "cutoffTime": { + "description": "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).", + "oneOf": [ + { "type": "string", "format": "time" }, + { "type": "array", "items": { "type": "string", "format": "time" } } + ] + }, + "duration": { + "description": "The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 duration format](http://en.wikipedia.org/wiki/ISO_8601).", + "anyOf": [ + { "type": "string", "$comment": "https://schema.org/Duration" }, + { "$ref": "schema:QuantitativeValue" } + ] + } + } +} diff --git a/registry/schema-org/ShareAction.schema.json b/registry/schema-org/ShareAction.schema.json new file mode 100644 index 0000000..d3e0985 --- /dev/null +++ b/registry/schema-org/ShareAction.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:ShareAction", + "title": "ShareAction", + "description": "The act of distributing content to people for their amusement or edification.", + "type": "object", + "allOf": [ + { + "description": "The act of conveying information to another person via a communication medium (instrument) such as speech, email, or telephone conversation.", + "$ref": "schema:CommunicateAction" + } + ] +} diff --git a/registry/schema-org/SheetMusic.schema.json b/registry/schema-org/SheetMusic.schema.json new file mode 100644 index 0000000..a4b94ad --- /dev/null +++ b/registry/schema-org/SheetMusic.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:SheetMusic", + "title": "SheetMusic", + "description": "Printed music, as opposed to performed or recorded music.", + "type": "object", + "allOf": [ + { + "description": "The most generic kind of creative work, including books, movies, photographs, software programs, etc.", + "$ref": "schema:CreativeWork" + } + ] +} diff --git a/registry/schema-org/ShippingConditions.schema.json b/registry/schema-org/ShippingConditions.schema.json new file mode 100644 index 0000000..76930de --- /dev/null +++ b/registry/schema-org/ShippingConditions.schema.json @@ -0,0 +1,99 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:ShippingConditions", + "title": "ShippingConditions", + "description": "ShippingConditions represent a set of constraints and information about the conditions of shipping a product. Such conditions may apply to only a subset of the products being shipped, depending on aspects of the product like weight, size, price, destination, and others. All the specified conditions must be met for this ShippingConditions to apply.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:StructuredValue" + } + ], + "properties": { + "depth": { + "description": "The depth of the item.", + "anyOf": [ + { "type": "string", "$comment": "https://schema.org/Distance" }, + { "$ref": "schema:QuantitativeValue" } + ] + }, + "doesNotShip": { + "description": "Indicates when shipping to a particular [[shippingDestination]] is not available.", + "type": "boolean" + }, + "height": { + "description": "The height of the item.", + "anyOf": [ + { "type": "string", "$comment": "https://schema.org/Distance" }, + { "$ref": "schema:QuantitativeValue" } + ] + }, + "numItems": { + "description": "Limits the number of items being shipped for which these conditions apply.", + "oneOf": [ + { "$ref": "schema:QuantitativeValue" }, + { "type": "array", "items": { "$ref": "schema:QuantitativeValue" } } + ] + }, + "orderValue": { + "description": "Minimum and maximum order value for which these shipping conditions are valid.", + "oneOf": [ + { "$ref": "schema:MonetaryAmount" }, + { "type": "array", "items": { "$ref": "schema:MonetaryAmount" } } + ] + }, + "seasonalOverride": { + "description": "Limited period during which these shipping conditions apply.", + "oneOf": [ + { "$ref": "schema:OpeningHoursSpecification" }, + { + "type": "array", + "items": { "$ref": "schema:OpeningHoursSpecification" } + } + ] + }, + "shippingDestination": { + "description": "indicates (possibly multiple) shipping destinations. These can be defined in several ways, e.g. postalCode ranges.", + "oneOf": [ + { "$ref": "schema:DefinedRegion" }, + { "type": "array", "items": { "$ref": "schema:DefinedRegion" } } + ] + }, + "shippingOrigin": { + "description": "Indicates the origin of a shipment, i.e. where it should be coming from.", + "oneOf": [ + { "$ref": "schema:DefinedRegion" }, + { "type": "array", "items": { "$ref": "schema:DefinedRegion" } } + ] + }, + "shippingRate": { + "description": "The shipping rate is the cost of shipping to the specified destination. Typically, the maxValue and currency values (of the [[MonetaryAmount]]) are most appropriate.", + "anyOf": [ + { "$ref": "schema:MonetaryAmount" }, + { "$ref": "schema:ShippingRateSettings" } + ] + }, + "transitTime": { + "description": "The typical delay the order has been sent for delivery and the goods reach the final customer.\n\n In the context of [[ShippingDeliveryTime]], use the [[QuantitativeValue]]. Typical properties: minValue, maxValue, unitCode (d for DAY).\n\n In the context of [[ShippingConditions]], use the [[ServicePeriod]]. It has a duration (as a [[QuantitativeValue]]) and also business days and a cut-off time.\n", + "anyOf": [ + { "$ref": "schema:QuantitativeValue" }, + { "$ref": "schema:ServicePeriod" } + ] + }, + "weight": { + "description": "The weight of the product or person.", + "anyOf": [ + { "type": "string", "$comment": "https://schema.org/Mass" }, + { "$ref": "schema:QuantitativeValue" } + ] + }, + "width": { + "description": "The width of the item.", + "anyOf": [ + { "type": "string", "$comment": "https://schema.org/Distance" }, + { "$ref": "schema:QuantitativeValue" } + ] + } + } +} diff --git a/registry/schema-org/ShippingDeliveryTime.schema.json b/registry/schema-org/ShippingDeliveryTime.schema.json new file mode 100644 index 0000000..b72daf4 --- /dev/null +++ b/registry/schema-org/ShippingDeliveryTime.schema.json @@ -0,0 +1,56 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:ShippingDeliveryTime", + "title": "ShippingDeliveryTime", + "description": "ShippingDeliveryTime provides various pieces of information about delivery times for shipping.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:StructuredValue" + } + ], + "properties": { + "businessDays": { + "description": "Days of the week when the merchant typically operates, indicated via opening hours markup.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:DayOfWeek" }, + { "$ref": "schema:OpeningHoursSpecification" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:DayOfWeek" }, + { "$ref": "schema:OpeningHoursSpecification" } + ] + } + } + ] + }, + "cutoffTime": { + "description": "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).", + "oneOf": [ + { "type": "string", "format": "time" }, + { "type": "array", "items": { "type": "string", "format": "time" } } + ] + }, + "handlingTime": { + "description": "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.\n\nIn the context of [[ShippingDeliveryTime]], 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.\n\nIn the context of [[ShippingService]], use the [[ServicePeriod]] format, that contains the same information in a structured form, with cut-off time, business days and duration.", + "anyOf": [ + { "$ref": "schema:QuantitativeValue" }, + { "$ref": "schema:ServicePeriod" } + ] + }, + "transitTime": { + "description": "The typical delay the order has been sent for delivery and the goods reach the final customer.\n\n In the context of [[ShippingDeliveryTime]], use the [[QuantitativeValue]]. Typical properties: minValue, maxValue, unitCode (d for DAY).\n\n In the context of [[ShippingConditions]], use the [[ServicePeriod]]. It has a duration (as a [[QuantitativeValue]]) and also business days and a cut-off time.\n", + "anyOf": [ + { "$ref": "schema:QuantitativeValue" }, + { "$ref": "schema:ServicePeriod" } + ] + } + } +} diff --git a/registry/schema-org/ShippingRateSettings.schema.json b/registry/schema-org/ShippingRateSettings.schema.json new file mode 100644 index 0000000..2b1297a --- /dev/null +++ b/registry/schema-org/ShippingRateSettings.schema.json @@ -0,0 +1,71 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:ShippingRateSettings", + "title": "ShippingRateSettings", + "description": "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]].", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:StructuredValue" + } + ], + "properties": { + "doesNotShip": { + "description": "Indicates when shipping to a particular [[shippingDestination]] is not available.", + "type": "boolean" + }, + "freeShippingThreshold": { + "description": "A monetary value above (or at) which the shipping rate becomes free. Intended to be used via an [[OfferShippingDetails]] with [[shippingSettingsLink]] matching this [[ShippingRateSettings]].", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:DeliveryChargeSpecification" }, + { "$ref": "schema:MonetaryAmount" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:DeliveryChargeSpecification" }, + { "$ref": "schema:MonetaryAmount" } + ] + } + } + ] + }, + "isUnlabelledFallback": { + "description": "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.", + "type": "boolean" + }, + "orderPercentage": { + "description": "Fraction of the value of the order that is charged as shipping cost.", + "oneOf": [ + { "type": "number" }, + { "type": "array", "items": { "type": "number" } } + ] + }, + "shippingDestination": { + "description": "indicates (possibly multiple) shipping destinations. These can be defined in several ways, e.g. postalCode ranges.", + "oneOf": [ + { "$ref": "schema:DefinedRegion" }, + { "type": "array", "items": { "$ref": "schema:DefinedRegion" } } + ] + }, + "shippingRate": { + "description": "The shipping rate is the cost of shipping to the specified destination. Typically, the maxValue and currency values (of the [[MonetaryAmount]]) are most appropriate.", + "anyOf": [ + { "$ref": "schema:MonetaryAmount" }, + { "$ref": "schema:ShippingRateSettings" } + ] + }, + "weightPercentage": { + "description": "Fraction of the weight that is used to compute the shipping price.", + "oneOf": [ + { "type": "number" }, + { "type": "array", "items": { "type": "number" } } + ] + } + } +} diff --git a/registry/schema-org/ShippingService.schema.json b/registry/schema-org/ShippingService.schema.json new file mode 100644 index 0000000..3ba0dc7 --- /dev/null +++ b/registry/schema-org/ShippingService.schema.json @@ -0,0 +1,40 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:ShippingService", + "title": "ShippingService", + "description": "ShippingService represents the criteria used to determine if and how an offer could be shipped to a customer.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:StructuredValue" + } + ], + "properties": { + "fulfillmentType": { + "description": "Type of fulfillment applicable to the [[ShippingService]].", + "oneOf": [ + { "$ref": "schema:FulfillmentTypeEnumeration" }, + { + "type": "array", + "items": { "$ref": "schema:FulfillmentTypeEnumeration" } + } + ] + }, + "handlingTime": { + "description": "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.\n\nIn the context of [[ShippingDeliveryTime]], 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.\n\nIn the context of [[ShippingService]], use the [[ServicePeriod]] format, that contains the same information in a structured form, with cut-off time, business days and duration.", + "anyOf": [ + { "$ref": "schema:QuantitativeValue" }, + { "$ref": "schema:ServicePeriod" } + ] + }, + "shippingConditions": { + "description": "The conditions (constraints, price) applicable to the [[ShippingService]].", + "$ref": "schema:ShippingConditions" + }, + "validForMemberTier": { + "description": "The membership program tier an Offer (or a PriceSpecification, OfferShippingDetails, or MerchantReturnPolicy under an Offer) is valid for.", + "$ref": "schema:MemberProgramTier" + } + } +} diff --git a/registry/schema-org/ShoeStore.schema.json b/registry/schema-org/ShoeStore.schema.json new file mode 100644 index 0000000..d52f815 --- /dev/null +++ b/registry/schema-org/ShoeStore.schema.json @@ -0,0 +1,8 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:ShoeStore", + "title": "ShoeStore", + "description": "A shoe store.", + "type": "object", + "allOf": [{ "description": "A retail good store.", "$ref": "schema:Store" }] +} diff --git a/registry/schema-org/ShoppingCenter.schema.json b/registry/schema-org/ShoppingCenter.schema.json new file mode 100644 index 0000000..299e3b1 --- /dev/null +++ b/registry/schema-org/ShoppingCenter.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:ShoppingCenter", + "title": "ShoppingCenter", + "description": "A shopping center or mall.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:LocalBusiness" + } + ] +} diff --git a/registry/schema-org/ShortStory.schema.json b/registry/schema-org/ShortStory.schema.json new file mode 100644 index 0000000..7bd8f41 --- /dev/null +++ b/registry/schema-org/ShortStory.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:ShortStory", + "title": "ShortStory", + "description": "Short story or tale. A brief work of literature, usually written in narrative prose.", + "type": "object", + "allOf": [ + { + "description": "The most generic kind of creative work, including books, movies, photographs, software programs, etc.", + "$ref": "schema:CreativeWork" + } + ] +} diff --git a/registry/schema-org/SingleFamilyResidence.schema.json b/registry/schema-org/SingleFamilyResidence.schema.json new file mode 100644 index 0000000..231a8e7 --- /dev/null +++ b/registry/schema-org/SingleFamilyResidence.schema.json @@ -0,0 +1,23 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:SingleFamilyResidence", + "title": "SingleFamilyResidence", + "description": "Residence type: Single-family home.", + "type": "object", + "allOf": [ + { + "description": "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).", + "$ref": "schema:House" + } + ], + "properties": { + "numberOfRooms": { + "description": "The number of rooms (excluding bathrooms and closets) of the accommodation or lodging business.\nTypical 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.", + "anyOf": [{ "type": "number" }, { "$ref": "schema:QuantitativeValue" }] + }, + "occupancy": { + "description": "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).\nTypical unit code(s): C62 for person.", + "$ref": "schema:QuantitativeValue" + } + } +} diff --git a/registry/schema-org/SiteNavigationElement.schema.json b/registry/schema-org/SiteNavigationElement.schema.json new file mode 100644 index 0000000..bf6dc47 --- /dev/null +++ b/registry/schema-org/SiteNavigationElement.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:SiteNavigationElement", + "title": "SiteNavigationElement", + "description": "A navigation element of the page.", + "type": "object", + "allOf": [ + { + "description": "A web page element, like a table or an image.", + "$ref": "schema:WebPageElement" + } + ] +} diff --git a/registry/schema-org/SizeGroupEnumeration.schema.json b/registry/schema-org/SizeGroupEnumeration.schema.json new file mode 100644 index 0000000..20960f3 --- /dev/null +++ b/registry/schema-org/SizeGroupEnumeration.schema.json @@ -0,0 +1,7 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:SizeGroupEnumeration", + "title": "SizeGroupEnumeration", + "description": "Enumerates common size groups for various product categories.", + "type": "object" +} diff --git a/registry/schema-org/SizeSpecification.schema.json b/registry/schema-org/SizeSpecification.schema.json new file mode 100644 index 0000000..f3eb0c1 --- /dev/null +++ b/registry/schema-org/SizeSpecification.schema.json @@ -0,0 +1,48 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:SizeSpecification", + "title": "SizeSpecification", + "description": "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]]).", + "type": "object", + "allOf": [ + { + "description": "A predefined value for a product characteristic, e.g. the power cord plug type 'US' or the garment sizes 'S', 'M', 'L', and 'XL'.", + "$ref": "schema:QualitativeValue" + } + ], + "properties": { + "hasMeasurement": { + "description": "A measurement of an item, For example, the inseam of pants, the wheel size of a bicycle, the gauge of a screw, or the carbon footprint measured for certification by an authority. Usually an exact measurement, but can also be a range of measurements for adjustable products, for example belts and ski bindings.", + "oneOf": [ + { "$ref": "schema:QuantitativeValue" }, + { "type": "array", "items": { "$ref": "schema:QuantitativeValue" } } + ] + }, + "sizeGroup": { + "description": "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\".", + "anyOf": [{ "type": "string" }, { "$ref": "schema:SizeGroupEnumeration" }] + }, + "sizeSystem": { + "description": "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\").", + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:SizeSystemEnumeration" } + ] + }, + "suggestedAge": { + "description": "The age or age range for the intended audience or person, for example 3-12 months for infants, 1-5 years for toddlers.", + "$ref": "schema:QuantitativeValue" + }, + "suggestedGender": { + "description": "The suggested gender of the intended person or audience, for example \"male\", \"female\", or \"unisex\".", + "anyOf": [{ "type": "string" }, { "$ref": "schema:GenderType" }] + }, + "suggestedMeasurement": { + "description": "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.", + "oneOf": [ + { "$ref": "schema:QuantitativeValue" }, + { "type": "array", "items": { "$ref": "schema:QuantitativeValue" } } + ] + } + } +} diff --git a/registry/schema-org/SizeSystemEnumeration.schema.json b/registry/schema-org/SizeSystemEnumeration.schema.json new file mode 100644 index 0000000..addbae7 --- /dev/null +++ b/registry/schema-org/SizeSystemEnumeration.schema.json @@ -0,0 +1,11 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:SizeSystemEnumeration", + "title": "SizeSystemEnumeration", + "description": "Enumerates common size systems for different categories of products, for example \"EN-13402\" or \"UK\" for wearables or \"Imperial\" for screws.", + "type": "string", + "oneOf": [ + { "description": "Imperial size system.", "const": "SizeSystemImperial" }, + { "description": "Metric size system.", "const": "SizeSystemMetric" } + ] +} diff --git a/registry/schema-org/SkiResort.schema.json b/registry/schema-org/SkiResort.schema.json new file mode 100644 index 0000000..48f9c31 --- /dev/null +++ b/registry/schema-org/SkiResort.schema.json @@ -0,0 +1,17 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:SkiResort", + "title": "SkiResort", + "description": "A ski resort.", + "type": "object", + "allOf": [ + { + "description": "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 ", + "$ref": "schema:Resort" + }, + { + "description": "A sports location, such as a playing field.", + "$ref": "schema:SportsActivityLocation" + } + ] +} diff --git a/registry/schema-org/SocialEvent.schema.json b/registry/schema-org/SocialEvent.schema.json new file mode 100644 index 0000000..830c5c2 --- /dev/null +++ b/registry/schema-org/SocialEvent.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:SocialEvent", + "title": "SocialEvent", + "description": "Event type: Social event.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:Event" + } + ] +} diff --git a/registry/schema-org/SocialMediaPosting.schema.json b/registry/schema-org/SocialMediaPosting.schema.json new file mode 100644 index 0000000..370e4b9 --- /dev/null +++ b/registry/schema-org/SocialMediaPosting.schema.json @@ -0,0 +1,22 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:SocialMediaPosting", + "title": "SocialMediaPosting", + "description": "A post to a social media platform, including blog posts, tweets, Facebook posts, etc.", + "type": "object", + "allOf": [ + { + "description": "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).", + "$ref": "schema:Article" + } + ], + "properties": { + "sharedContent": { + "description": "A CreativeWork such as an image, video, or audio clip shared as part of this posting.", + "oneOf": [ + { "$ref": "schema:CreativeWork" }, + { "type": "array", "items": { "$ref": "schema:CreativeWork" } } + ] + } + } +} diff --git a/registry/schema-org/SoftwareApplication.schema.json b/registry/schema-org/SoftwareApplication.schema.json new file mode 100644 index 0000000..617751a --- /dev/null +++ b/registry/schema-org/SoftwareApplication.schema.json @@ -0,0 +1,192 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:SoftwareApplication", + "title": "SoftwareApplication", + "description": "A software application.", + "type": "object", + "allOf": [ + { + "description": "The most generic kind of creative work, including books, movies, photographs, software programs, etc.", + "$ref": "schema:CreativeWork" + } + ], + "properties": { + "applicationCategory": { + "description": "Type of software application, e.g. 'Game, Multimedia'.", + "anyOf": [{ "type": "string", "format": "uri" }, { "type": "string" }] + }, + "applicationSubCategory": { + "description": "Subcategory of the application, e.g. 'Arcade Game'.", + "anyOf": [{ "type": "string", "format": "uri" }, { "type": "string" }] + }, + "applicationSuite": { + "description": "The name of the application suite to which the application belongs (e.g. Excel belongs to Office).", + "type": "string" + }, + "availableOnDevice": { + "description": "Device required to run the application. Used in cases where a specific make/model is required to run the application.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "countriesNotSupported": { + "description": "Countries for which the application is not supported. You can also provide the two-letter ISO 3166-1 alpha-2 country code.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "countriesSupported": { + "description": "Countries for which the application is supported. You can also provide the two-letter ISO 3166-1 alpha-2 country code.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "device": { + "description": "Device required to run the application. Used in cases where a specific make/model is required to run the application.", + "type": "string" + }, + "downloadUrl": { + "description": "If the file can be downloaded, URL to download the binary.", + "type": "string", + "format": "uri" + }, + "featureList": { + "description": "Features or modules provided by this application (and possibly required by other applications).", + "oneOf": [ + { + "anyOf": [{ "type": "string", "format": "uri" }, { "type": "string" }] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" } + ] + } + } + ] + }, + "fileSize": { + "description": "Size of the application / package (e.g. 18MB). In the absence of a unit (MB, KB etc.), KB will be assumed.", + "type": "string" + }, + "installUrl": { + "description": "URL at which the app may be installed, if different from the URL of the item.", + "type": "string", + "format": "uri" + }, + "memoryRequirements": { + "description": "Minimum memory requirements.", + "anyOf": [{ "type": "string", "format": "uri" }, { "type": "string" }] + }, + "operatingSystem": { + "description": "Operating systems supported (Windows 7, OS X 10.6, Android 1.6).", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "permissions": { + "description": "Permission(s) required to run the app (for example, a mobile app may require full internet access or may run only on wifi).", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "processorRequirements": { + "description": "Processor architecture required to run the application (e.g. IA64).", + "type": "string" + }, + "releaseNotes": { + "description": "Description of what changed in this version.", + "anyOf": [{ "type": "string", "format": "uri" }, { "type": "string" }] + }, + "requirements": { + "description": "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).", + "oneOf": [ + { + "anyOf": [{ "type": "string", "format": "uri" }, { "type": "string" }] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" } + ] + } + } + ] + }, + "screenshot": { + "description": "A link to a screenshot image of the app.", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:ImageObject" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:ImageObject" } + ] + } + } + ] + }, + "softwareAddOn": { + "description": "Additional content for a software application.", + "oneOf": [ + { "$ref": "schema:SoftwareApplication" }, + { "type": "array", "items": { "$ref": "schema:SoftwareApplication" } } + ] + }, + "softwareHelp": { + "description": "Software application help.", + "oneOf": [ + { "$ref": "schema:CreativeWork" }, + { "type": "array", "items": { "$ref": "schema:CreativeWork" } } + ] + }, + "softwareRequirements": { + "description": "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).", + "oneOf": [ + { + "anyOf": [{ "type": "string", "format": "uri" }, { "type": "string" }] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" } + ] + } + } + ] + }, + "softwareVersion": { + "description": "Version of the software instance.", + "type": "string" + }, + "storageRequirements": { + "description": "Storage requirements (free space required).", + "anyOf": [{ "type": "string", "format": "uri" }, { "type": "string" }] + }, + "supportingData": { + "description": "Supporting data for a SoftwareApplication.", + "oneOf": [ + { "$ref": "schema:DataFeed" }, + { "type": "array", "items": { "$ref": "schema:DataFeed" } } + ] + } + } +} diff --git a/registry/schema-org/SoftwareSourceCode.schema.json b/registry/schema-org/SoftwareSourceCode.schema.json new file mode 100644 index 0000000..3881339 --- /dev/null +++ b/registry/schema-org/SoftwareSourceCode.schema.json @@ -0,0 +1,68 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:SoftwareSourceCode", + "title": "SoftwareSourceCode", + "description": "Computer programming source code. Example: Full (compile ready) solutions, code snippet samples, scripts, templates.", + "type": "object", + "allOf": [ + { + "description": "The most generic kind of creative work, including books, movies, photographs, software programs, etc.", + "$ref": "schema:CreativeWork" + } + ], + "properties": { + "codeRepository": { + "description": "Link to the repository where the un-compiled, human readable code and related code is located (SVN, GitHub, CodePlex).", + "oneOf": [ + { "type": "string", "format": "uri" }, + { "type": "array", "items": { "type": "string", "format": "uri" } } + ] + }, + "codeSampleType": { + "description": "What type of code sample: full (compile ready) solution, code snippet, inline code, scripts, template.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "programmingLanguage": { + "description": "The computer programming language.", + "oneOf": [ + { + "anyOf": [{ "type": "string" }, { "$ref": "schema:ComputerLanguage" }] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:ComputerLanguage" } + ] + } + } + ] + }, + "runtime": { + "description": "Runtime platform or script interpreter dependencies (example: Java v1, Python 2.3, .NET Framework 3.0).", + "type": "string" + }, + "runtimePlatform": { + "description": "Runtime platform or script interpreter dependencies (example: Java v1, Python 2.3, .NET Framework 3.0).", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "sampleType": { + "description": "What type of code sample: full (compile ready) solution, code snippet, inline code, scripts, template.", + "type": "string" + }, + "targetProduct": { + "description": "Target Operating System / Product to which the code applies. If applies to several versions, just the product name can be used.", + "oneOf": [ + { "$ref": "schema:SoftwareApplication" }, + { "type": "array", "items": { "$ref": "schema:SoftwareApplication" } } + ] + } + } +} diff --git a/registry/schema-org/SolveMathAction.schema.json b/registry/schema-org/SolveMathAction.schema.json new file mode 100644 index 0000000..9711e51 --- /dev/null +++ b/registry/schema-org/SolveMathAction.schema.json @@ -0,0 +1,22 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:SolveMathAction", + "title": "SolveMathAction", + "description": "The action that takes in a math expression and directs users to a page potentially capable of solving/simplifying that expression.", + "type": "object", + "allOf": [ + { + "description": "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).", + "$ref": "schema:Action" + } + ], + "properties": { + "eduQuestionType": { + "description": "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\".", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + } + } +} diff --git a/registry/schema-org/SomeProducts.schema.json b/registry/schema-org/SomeProducts.schema.json new file mode 100644 index 0000000..3c05418 --- /dev/null +++ b/registry/schema-org/SomeProducts.schema.json @@ -0,0 +1,19 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:SomeProducts", + "title": "SomeProducts", + "description": "A placeholder for multiple similar products of the same kind.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:Product" + } + ], + "properties": { + "inventoryLevel": { + "description": "The current approximate inventory level for the item or items.", + "$ref": "schema:QuantitativeValue" + } + } +} diff --git a/registry/schema-org/SpeakableSpecification.schema.json b/registry/schema-org/SpeakableSpecification.schema.json new file mode 100644 index 0000000..9b34a90 --- /dev/null +++ b/registry/schema-org/SpeakableSpecification.schema.json @@ -0,0 +1,23 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:SpeakableSpecification", + "title": "SpeakableSpecification", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "A utility class that serves as the umbrella for a number of 'intangible' things such as quantities, structured values, etc.", + "$ref": "schema:Intangible" + } + ], + "properties": { + "cssSelector": { + "description": "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\".", + "type": "string" + }, + "xpath": { + "description": "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\".", + "type": "string" + } + } +} diff --git a/registry/schema-org/SpecialAnnouncement.schema.json b/registry/schema-org/SpecialAnnouncement.schema.json new file mode 100644 index 0000000..a542c5d --- /dev/null +++ b/registry/schema-org/SpecialAnnouncement.schema.json @@ -0,0 +1,246 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:SpecialAnnouncement", + "title": "SpecialAnnouncement", + "description": "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\".\n", + "type": "object", + "allOf": [ + { + "description": "The most generic kind of creative work, including books, movies, photographs, software programs, etc.", + "$ref": "schema:CreativeWork" + } + ], + "properties": { + "announcementLocation": { + "description": "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]].", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:CivicStructure" }, + { "$ref": "schema:LocalBusiness" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:CivicStructure" }, + { "$ref": "schema:LocalBusiness" } + ] + } + } + ] + }, + "category": { + "description": "A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:CategoryCode" }, + { "$ref": "schema:PhysicalActivityCategory" }, + { "$ref": "schema:Thing" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:CategoryCode" }, + { "$ref": "schema:PhysicalActivityCategory" }, + { "$ref": "schema:Thing" } + ] + } + } + ] + }, + "datePosted": { + "description": "Publication date of an online listing.", + "anyOf": [ + { "type": "string", "format": "date" }, + { "type": "string", "format": "date-time" } + ] + }, + "diseasePreventionInfo": { + "description": "Information about disease prevention.", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:WebContent" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:WebContent" } + ] + } + } + ] + }, + "diseaseSpreadStatistics": { + "description": "Statistical information about the spread of a disease, either as [[WebContent]], or\n described directly as a [[Dataset]], or the specific [[Observation]]s in the dataset. When a [[WebContent]] URL is\n provided, the page indicated might also contain more such markup.", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:Dataset" }, + { "$ref": "schema:Observation" }, + { "$ref": "schema:WebContent" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:Dataset" }, + { "$ref": "schema:Observation" }, + { "$ref": "schema:WebContent" } + ] + } + } + ] + }, + "gettingTestedInfo": { + "description": "Information about getting tested (for a [[MedicalCondition]]), e.g. in the context of a pandemic.", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:WebContent" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:WebContent" } + ] + } + } + ] + }, + "governmentBenefitsInfo": { + "description": "governmentBenefitsInfo provides information about government benefits associated with a SpecialAnnouncement.", + "oneOf": [ + { "$ref": "schema:GovernmentService" }, + { "type": "array", "items": { "$ref": "schema:GovernmentService" } } + ] + }, + "newsUpdatesAndGuidelines": { + "description": "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.", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:WebContent" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:WebContent" } + ] + } + } + ] + }, + "publicTransportClosuresInfo": { + "description": "Information about public transport closures.", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:WebContent" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:WebContent" } + ] + } + } + ] + }, + "quarantineGuidelines": { + "description": "Guidelines about quarantine rules, e.g. in the context of a pandemic.", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:WebContent" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:WebContent" } + ] + } + } + ] + }, + "schoolClosuresInfo": { + "description": "Information about school closures.", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:WebContent" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:WebContent" } + ] + } + } + ] + }, + "travelBans": { + "description": "Information about travel bans, e.g. in the context of a pandemic.", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:WebContent" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:WebContent" } + ] + } + } + ] + }, + "webFeed": { + "description": "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.", + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:DataFeed" } + ] + } + } +} diff --git a/registry/schema-org/Specialty.schema.json b/registry/schema-org/Specialty.schema.json new file mode 100644 index 0000000..43d41d5 --- /dev/null +++ b/registry/schema-org/Specialty.schema.json @@ -0,0 +1,7 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Specialty", + "title": "Specialty", + "description": "Any branch of a field in which people typically develop specific expertise, usually after significant study, time, and effort.", + "type": "object" +} diff --git a/registry/schema-org/SportingGoodsStore.schema.json b/registry/schema-org/SportingGoodsStore.schema.json new file mode 100644 index 0000000..228c341 --- /dev/null +++ b/registry/schema-org/SportingGoodsStore.schema.json @@ -0,0 +1,8 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:SportingGoodsStore", + "title": "SportingGoodsStore", + "description": "A sporting goods store.", + "type": "object", + "allOf": [{ "description": "A retail good store.", "$ref": "schema:Store" }] +} diff --git a/registry/schema-org/SportsActivityLocation.schema.json b/registry/schema-org/SportsActivityLocation.schema.json new file mode 100644 index 0000000..ca45fa8 --- /dev/null +++ b/registry/schema-org/SportsActivityLocation.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:SportsActivityLocation", + "title": "SportsActivityLocation", + "description": "A sports location, such as a playing field.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:LocalBusiness" + } + ] +} diff --git a/registry/schema-org/SportsClub.schema.json b/registry/schema-org/SportsClub.schema.json new file mode 100644 index 0000000..0fc0d96 --- /dev/null +++ b/registry/schema-org/SportsClub.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:SportsClub", + "title": "SportsClub", + "description": "A sports club.", + "type": "object", + "allOf": [ + { + "description": "A sports location, such as a playing field.", + "$ref": "schema:SportsActivityLocation" + } + ] +} diff --git a/registry/schema-org/SportsEvent.schema.json b/registry/schema-org/SportsEvent.schema.json new file mode 100644 index 0000000..85c821a --- /dev/null +++ b/registry/schema-org/SportsEvent.schema.json @@ -0,0 +1,67 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:SportsEvent", + "title": "SportsEvent", + "description": "Event type: Sports event.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:Event" + } + ], + "properties": { + "awayTeam": { + "description": "The away team in a sports event.", + "anyOf": [{ "$ref": "schema:Person" }, { "$ref": "schema:SportsTeam" }] + }, + "competitor": { + "description": "A competitor in a sports event.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:Person" }, + { "$ref": "schema:SportsTeam" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:Person" }, + { "$ref": "schema:SportsTeam" } + ] + } + } + ] + }, + "homeTeam": { + "description": "The home team in a sports event.", + "anyOf": [{ "$ref": "schema:Person" }, { "$ref": "schema:SportsTeam" }] + }, + "referee": { + "description": "An official who watches a game or match closely to enforce the rules and arbitrate on matters arising from the play such as referees, umpires or judges. The name of the effective function can vary according to the sport.", + "oneOf": [ + { "$ref": "schema:Person" }, + { "type": "array", "items": { "$ref": "schema:Person" } } + ] + }, + "sport": { + "description": "A type of sport (e.g. Baseball).", + "oneOf": [ + { + "anyOf": [{ "type": "string", "format": "uri" }, { "type": "string" }] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" } + ] + } + } + ] + } + } +} diff --git a/registry/schema-org/SportsOrganization.schema.json b/registry/schema-org/SportsOrganization.schema.json new file mode 100644 index 0000000..dec3d9c --- /dev/null +++ b/registry/schema-org/SportsOrganization.schema.json @@ -0,0 +1,32 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:SportsOrganization", + "title": "SportsOrganization", + "description": "Represents the collection of all sports organizations, including sports teams, governing bodies, and sports associations.", + "type": "object", + "allOf": [ + { + "description": "An organization such as a school, NGO, corporation, club, etc.", + "$ref": "schema:Organization" + } + ], + "properties": { + "sport": { + "description": "A type of sport (e.g. Baseball).", + "oneOf": [ + { + "anyOf": [{ "type": "string", "format": "uri" }, { "type": "string" }] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" } + ] + } + } + ] + } + } +} diff --git a/registry/schema-org/SportsTeam.schema.json b/registry/schema-org/SportsTeam.schema.json new file mode 100644 index 0000000..f526658 --- /dev/null +++ b/registry/schema-org/SportsTeam.schema.json @@ -0,0 +1,33 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:SportsTeam", + "title": "SportsTeam", + "description": "Organization: Sports team.", + "type": "object", + "allOf": [ + { + "description": "Represents the collection of all sports organizations, including sports teams, governing bodies, and sports associations.", + "$ref": "schema:SportsOrganization" + } + ], + "properties": { + "athlete": { + "description": "A person that acts as performing member of a sports team; a player as opposed to a coach.", + "oneOf": [ + { "$ref": "schema:Person" }, + { "type": "array", "items": { "$ref": "schema:Person" } } + ] + }, + "coach": { + "description": "A person that acts in a coaching role for a sports team.", + "oneOf": [ + { "$ref": "schema:Person" }, + { "type": "array", "items": { "$ref": "schema:Person" } } + ] + }, + "gender": { + "description": "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 are not 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\".", + "anyOf": [{ "type": "string" }, { "$ref": "schema:GenderType" }] + } + } +} diff --git a/registry/schema-org/SpreadsheetDigitalDocument.schema.json b/registry/schema-org/SpreadsheetDigitalDocument.schema.json new file mode 100644 index 0000000..5108aab --- /dev/null +++ b/registry/schema-org/SpreadsheetDigitalDocument.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:SpreadsheetDigitalDocument", + "title": "SpreadsheetDigitalDocument", + "description": "A spreadsheet file.", + "type": "object", + "allOf": [ + { + "description": "An electronic file or document.", + "$ref": "schema:DigitalDocument" + } + ] +} diff --git a/registry/schema-org/StadiumOrArena.schema.json b/registry/schema-org/StadiumOrArena.schema.json new file mode 100644 index 0000000..753265a --- /dev/null +++ b/registry/schema-org/StadiumOrArena.schema.json @@ -0,0 +1,17 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:StadiumOrArena", + "title": "StadiumOrArena", + "description": "A stadium.", + "type": "object", + "allOf": [ + { + "description": "A public structure, such as a town hall or concert hall.", + "$ref": "schema:CivicStructure" + }, + { + "description": "A sports location, such as a playing field.", + "$ref": "schema:SportsActivityLocation" + } + ] +} diff --git a/registry/schema-org/State.schema.json b/registry/schema-org/State.schema.json new file mode 100644 index 0000000..6d73e1b --- /dev/null +++ b/registry/schema-org/State.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:State", + "title": "State", + "description": "A state or province of a country.", + "type": "object", + "allOf": [ + { + "description": "A geographical region, typically under the jurisdiction of a particular government.", + "$ref": "schema:AdministrativeArea" + } + ] +} diff --git a/registry/schema-org/Statement.schema.json b/registry/schema-org/Statement.schema.json new file mode 100644 index 0000000..2818833 --- /dev/null +++ b/registry/schema-org/Statement.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Statement", + "title": "Statement", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "The most generic kind of creative work, including books, movies, photographs, software programs, etc.", + "$ref": "schema:CreativeWork" + } + ] +} diff --git a/registry/schema-org/StatisticalPopulation.schema.json b/registry/schema-org/StatisticalPopulation.schema.json new file mode 100644 index 0000000..8e1e70e --- /dev/null +++ b/registry/schema-org/StatisticalPopulation.schema.json @@ -0,0 +1,22 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:StatisticalPopulation", + "title": "StatisticalPopulation", + "description": "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 [[constraintProperty]] 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]], where a [[populationType]] such as [[Person]] or [[Event]] can be indicated directly. In most cases it may be better to use [[StatisticalVariable]] instead of [[StatisticalPopulation]].", + "type": "object", + "allOf": [ + { + "description": "A utility class that serves as the umbrella for a number of 'intangible' things such as quantities, structured values, etc.", + "$ref": "schema:Intangible" + } + ], + "properties": { + "populationType": { + "description": "Indicates the populationType common to all members of a [[StatisticalPopulation]] or all cases within the scope of a [[StatisticalVariable]].", + "oneOf": [ + { "$ref": "schema:Class" }, + { "type": "array", "items": { "$ref": "schema:Class" } } + ] + } + } +} diff --git a/registry/schema-org/StatisticalVariable.schema.json b/registry/schema-org/StatisticalVariable.schema.json new file mode 100644 index 0000000..cd93e8b --- /dev/null +++ b/registry/schema-org/StatisticalVariable.schema.json @@ -0,0 +1,110 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:StatisticalVariable", + "title": "StatisticalVariable", + "description": "[[StatisticalVariable]] represents any type of statistical metric that can be measured at a place and time. The usage pattern for [[StatisticalVariable]] is typically expressed using [[Observation]] with an explicit [[populationType]], which is a type, typically drawn from Schema.org. Each [[StatisticalVariable]] is marked as a [[ConstraintNode]], meaning that some properties (those listed using [[constraintProperty]]) serve in this setting solely to define the statistical variable rather than literally describe a specific person, place or thing. For example, a [[StatisticalVariable]] Median_Height_Person_Female representing the median height of women, could be written as follows: the population type is [[Person]]; the measuredProperty [[height]]; the [[statType]] [[median]]; the [[gender]] [[Female]]. It is important to note that there are many kinds of scientific quantitative observation which are not fully, perfectly or unambiguously described following this pattern, or with solely Schema.org terminology. The approach taken here is designed to allow partial, incremental or minimal description of [[StatisticalVariable]]s, and the use of detailed sets of entity and property IDs from external repositories. The [[measurementMethod]], [[unitCode]] and [[unitText]] properties can also be used to clarify the specific nature and notation of an observed measurement. ", + "type": "object", + "allOf": [ + { + "description": "The ConstraintNode type is provided to support usecases in which a node in a structured data graph is described with properties which appear to describe a single entity, but are being used in a situation where they serve a more abstract purpose. A [[ConstraintNode]] can be described using [[constraintProperty]] and [[numConstraints]]. These constraint properties can serve a\n variety of purposes, and their values may sometimes be understood to indicate sets of possible values rather than single, exact and specific values.", + "$ref": "schema:ConstraintNode" + } + ], + "properties": { + "measuredProperty": { + "description": "The measuredProperty of an [[Observation]], typically via its [[StatisticalVariable]]. There are various kinds of applicable [[Property]]: a schema.org property, a property from other RDF-compatible systems, e.g. W3C RDF Data Cube, Data Commons, Wikidata, or schema.org extensions such as [GS1's](https://www.gs1.org/voc/?show=properties).", + "$ref": "schema:Property" + }, + "measurementDenominator": { + "description": "Identifies the denominator variable when an observation represents a ratio or percentage.", + "oneOf": [ + { "$ref": "schema:StatisticalVariable" }, + { "type": "array", "items": { "$ref": "schema:StatisticalVariable" } } + ] + }, + "measurementMethod": { + "description": "A subproperty of [[measurementTechnique]] that can be used for specifying specific methods, in particular via [[MeasurementMethodEnum]].", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:DefinedTerm" }, + { "$ref": "schema:MeasurementMethodEnum" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:DefinedTerm" }, + { "$ref": "schema:MeasurementMethodEnum" } + ] + } + } + ] + }, + "measurementQualifier": { + "description": "Provides additional qualification to an observation. For example, a GDP observation measures the Nominal value.", + "oneOf": [ + { "$ref": "schema:Enumeration" }, + { "type": "array", "items": { "$ref": "schema:Enumeration" } } + ] + }, + "measurementTechnique": { + "description": "A technique, method or technology used in an [[Observation]], [[StatisticalVariable]] or [[Dataset]] (or [[DataDownload]], [[DataCatalog]]), corresponding to the method used for measuring the corresponding variable(s) (for datasets, described using [[variableMeasured]]; for [[Observation]], a [[StatisticalVariable]]). Often but not necessarily each [[variableMeasured]] will have an explicit representation as (or mapping to) an property such as those defined in Schema.org, or other RDF vocabularies and \"knowledge graphs\". In that case the subproperty of [[variableMeasured]] called [[measuredProperty]] is applicable.\n \nThe [[measurementTechnique]] property helps when extra clarification is needed about how a [[measuredProperty]] was measured. 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 can often serve as a high level summary for dataset discovery. \n\nFor 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\". \n\nIf there are several [[variableMeasured]] properties recorded for some given data object, use a [[PropertyValue]] for each [[variableMeasured]] and attach the corresponding [[measurementTechnique]]. The value can also be from an enumeration, organized as a [[MeasurementMetholdEnumeration]].", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:DefinedTerm" }, + { "$ref": "schema:MeasurementMethodEnum" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:DefinedTerm" }, + { "$ref": "schema:MeasurementMethodEnum" } + ] + } + } + ] + }, + "populationType": { + "description": "Indicates the populationType common to all members of a [[StatisticalPopulation]] or all cases within the scope of a [[StatisticalVariable]].", + "oneOf": [ + { "$ref": "schema:Class" }, + { "type": "array", "items": { "$ref": "schema:Class" } } + ] + }, + "statType": { + "description": "Indicates the kind of statistic represented by a [[StatisticalVariable]], e.g. mean, count etc. The value of statType is a property, either from within Schema.org (e.g. [[median]], [[marginOfError]], [[maxValue]], [[minValue]]) or from other compatible (e.g. RDF) systems such as DataCommons.org or Wikidata.org. ", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:Property" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:Property" } + ] + } + } + ] + } + } +} diff --git a/registry/schema-org/StatusEnumeration.schema.json b/registry/schema-org/StatusEnumeration.schema.json new file mode 100644 index 0000000..5ef005b --- /dev/null +++ b/registry/schema-org/StatusEnumeration.schema.json @@ -0,0 +1,7 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:StatusEnumeration", + "title": "StatusEnumeration", + "description": "Lists or enumerations dealing with status types.", + "type": "object" +} diff --git a/registry/schema-org/SteeringPositionValue.schema.json b/registry/schema-org/SteeringPositionValue.schema.json new file mode 100644 index 0000000..0d62957 --- /dev/null +++ b/registry/schema-org/SteeringPositionValue.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:SteeringPositionValue", + "title": "SteeringPositionValue", + "description": "A value indicating a steering position.", + "type": "object", + "allOf": [ + { + "description": "A predefined value for a product characteristic, e.g. the power cord plug type 'US' or the garment sizes 'S', 'M', 'L', and 'XL'.", + "$ref": "schema:QualitativeValue" + } + ] +} diff --git a/registry/schema-org/Store.schema.json b/registry/schema-org/Store.schema.json new file mode 100644 index 0000000..4fb3b15 --- /dev/null +++ b/registry/schema-org/Store.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Store", + "title": "Store", + "description": "A retail good store.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:LocalBusiness" + } + ] +} diff --git a/registry/schema-org/StructuredValue.schema.json b/registry/schema-org/StructuredValue.schema.json new file mode 100644 index 0000000..07797bf --- /dev/null +++ b/registry/schema-org/StructuredValue.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:StructuredValue", + "title": "StructuredValue", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "A utility class that serves as the umbrella for a number of 'intangible' things such as quantities, structured values, etc.", + "$ref": "schema:Intangible" + } + ] +} diff --git a/registry/schema-org/SubscribeAction.schema.json b/registry/schema-org/SubscribeAction.schema.json new file mode 100644 index 0000000..10a8844 --- /dev/null +++ b/registry/schema-org/SubscribeAction.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:SubscribeAction", + "title": "SubscribeAction", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "The act of interacting with another person or organization.", + "$ref": "schema:InteractAction" + } + ] +} diff --git a/registry/schema-org/Substance.schema.json b/registry/schema-org/Substance.schema.json new file mode 100644 index 0000000..7818d5f --- /dev/null +++ b/registry/schema-org/Substance.schema.json @@ -0,0 +1,26 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Substance", + "title": "Substance", + "description": "Any matter of defined composition that has discrete existence, whose origin may be biological, mineral or chemical.", + "type": "object", + "allOf": [ + { + "description": "The most generic type of entity related to health and the practice of medicine.", + "$ref": "schema:MedicalEntity" + } + ], + "properties": { + "activeIngredient": { + "description": "An active ingredient, typically chemical compounds and/or biologic substances.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "maximumIntake": { + "description": "Recommended intake of this supplement for a given population as defined by a specific recommending authority.", + "$ref": "schema:MaximumDoseSchedule" + } + } +} diff --git a/registry/schema-org/SubwayStation.schema.json b/registry/schema-org/SubwayStation.schema.json new file mode 100644 index 0000000..c8f826a --- /dev/null +++ b/registry/schema-org/SubwayStation.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:SubwayStation", + "title": "SubwayStation", + "description": "A subway station.", + "type": "object", + "allOf": [ + { + "description": "A public structure, such as a town hall or concert hall.", + "$ref": "schema:CivicStructure" + } + ] +} diff --git a/registry/schema-org/Suite.schema.json b/registry/schema-org/Suite.schema.json new file mode 100644 index 0000000..5fb16e5 --- /dev/null +++ b/registry/schema-org/Suite.schema.json @@ -0,0 +1,31 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Suite", + "title": "Suite", + "description": "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.\n", + "type": "object", + "allOf": [ + { + "description": "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.\n", + "$ref": "schema:Accommodation" + } + ], + "properties": { + "bed": { + "description": "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.\n 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.", + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:BedDetails" }, + { "$ref": "schema:BedType" } + ] + }, + "numberOfRooms": { + "description": "The number of rooms (excluding bathrooms and closets) of the accommodation or lodging business.\nTypical 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.", + "anyOf": [{ "type": "number" }, { "$ref": "schema:QuantitativeValue" }] + }, + "occupancy": { + "description": "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).\nTypical unit code(s): C62 for person.", + "$ref": "schema:QuantitativeValue" + } + } +} diff --git a/registry/schema-org/SuperficialAnatomy.schema.json b/registry/schema-org/SuperficialAnatomy.schema.json new file mode 100644 index 0000000..de36f31 --- /dev/null +++ b/registry/schema-org/SuperficialAnatomy.schema.json @@ -0,0 +1,57 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:SuperficialAnatomy", + "title": "SuperficialAnatomy", + "description": "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).", + "type": "object", + "allOf": [ + { + "description": "The most generic type of entity related to health and the practice of medicine.", + "$ref": "schema:MedicalEntity" + } + ], + "properties": { + "associatedPathophysiology": { + "description": "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.", + "type": "string" + }, + "relatedAnatomy": { + "description": "Anatomical systems or structures that relate to the superficial anatomy.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:AnatomicalStructure" }, + { "$ref": "schema:AnatomicalSystem" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:AnatomicalStructure" }, + { "$ref": "schema:AnatomicalSystem" } + ] + } + } + ] + }, + "relatedCondition": { + "description": "A medical condition associated with this anatomy.", + "oneOf": [ + { "$ref": "schema:MedicalCondition" }, + { "type": "array", "items": { "$ref": "schema:MedicalCondition" } } + ] + }, + "relatedTherapy": { + "description": "A medical therapy related to this anatomy.", + "oneOf": [ + { "$ref": "schema:MedicalTherapy" }, + { "type": "array", "items": { "$ref": "schema:MedicalTherapy" } } + ] + }, + "significance": { + "description": "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.", + "type": "string" + } + } +} diff --git a/registry/schema-org/SurgicalProcedure.schema.json b/registry/schema-org/SurgicalProcedure.schema.json new file mode 100644 index 0000000..51579e1 --- /dev/null +++ b/registry/schema-org/SurgicalProcedure.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:SurgicalProcedure", + "title": "SurgicalProcedure", + "description": "A medical procedure involving an incision with instruments; performed for diagnose, or therapeutic purposes.", + "type": "object", + "allOf": [ + { + "description": "A process of care used in either a diagnostic, therapeutic, preventive or palliative capacity that relies on invasive (surgical), non-invasive, or other techniques.", + "$ref": "schema:MedicalProcedure" + } + ] +} diff --git a/registry/schema-org/SuspendAction.schema.json b/registry/schema-org/SuspendAction.schema.json new file mode 100644 index 0000000..df9c82d --- /dev/null +++ b/registry/schema-org/SuspendAction.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:SuspendAction", + "title": "SuspendAction", + "description": "The act of momentarily pausing a device or application (e.g. pause music playback or pause a timer).", + "type": "object", + "allOf": [ + { + "description": "An agent controls a device or application.", + "$ref": "schema:ControlAction" + } + ] +} diff --git a/registry/schema-org/Syllabus.schema.json b/registry/schema-org/Syllabus.schema.json new file mode 100644 index 0000000..215f8d1 --- /dev/null +++ b/registry/schema-org/Syllabus.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Syllabus", + "title": "Syllabus", + "description": "A syllabus that describes the material covered in a course, often with several such sections per [[Course]] so that a distinct [[timeRequired]] can be provided for that section of the [[Course]].", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:LearningResource" + } + ] +} diff --git a/registry/schema-org/Synagogue.schema.json b/registry/schema-org/Synagogue.schema.json new file mode 100644 index 0000000..b7063b6 --- /dev/null +++ b/registry/schema-org/Synagogue.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Synagogue", + "title": "Synagogue", + "description": "A synagogue.", + "type": "object", + "allOf": [ + { + "description": "Place of worship, such as a church, synagogue, or mosque.", + "$ref": "schema:PlaceOfWorship" + } + ] +} diff --git a/registry/schema-org/TVClip.schema.json b/registry/schema-org/TVClip.schema.json new file mode 100644 index 0000000..fc13576 --- /dev/null +++ b/registry/schema-org/TVClip.schema.json @@ -0,0 +1,19 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:TVClip", + "title": "TVClip", + "description": "A short TV program or a segment/part of a TV program.", + "type": "object", + "allOf": [ + { + "description": "A short TV or radio program or a segment/part of a program.", + "$ref": "schema:Clip" + } + ], + "properties": { + "partOfTVSeries": { + "description": "The TV series to which this episode or season belongs.", + "$ref": "schema:TVSeries" + } + } +} diff --git a/registry/schema-org/TVEpisode.schema.json b/registry/schema-org/TVEpisode.schema.json new file mode 100644 index 0000000..fb083a0 --- /dev/null +++ b/registry/schema-org/TVEpisode.schema.json @@ -0,0 +1,52 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:TVEpisode", + "title": "TVEpisode", + "description": "A TV episode which can be part of a series or season.", + "type": "object", + "allOf": [ + { + "description": "A media episode (e.g. TV, radio, video game) which can be part of a series or season.", + "$ref": "schema:Episode" + } + ], + "properties": { + "countryOfOrigin": { + "description": "The country of origin of something, including products as well as creative works such as movie and TV content.\n\nIn the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable.\n\nIn the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.", + "$ref": "schema:Country" + }, + "partOfTVSeries": { + "description": "The TV series to which this episode or season belongs.", + "$ref": "schema:TVSeries" + }, + "subtitleLanguage": { + "description": "Languages in which subtitles/captions are available, in [IETF BCP 47 standard format](http://tools.ietf.org/html/bcp47).", + "oneOf": [ + { "anyOf": [{ "type": "string" }, { "$ref": "schema:Language" }] }, + { + "type": "array", + "items": { + "anyOf": [{ "type": "string" }, { "$ref": "schema:Language" }] + } + } + ] + }, + "titleEIDR": { + "description": "An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing at the most general/abstract level, a work of film or television.\n\nFor 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]].\n\nSince schema.org types like [[Movie]], [[TVEpisode]], [[TVSeason]], and [[TVSeries]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description.\n", + "oneOf": [ + { + "anyOf": [{ "type": "string", "format": "uri" }, { "type": "string" }] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" } + ] + } + } + ] + } + } +} diff --git a/registry/schema-org/TVSeason.schema.json b/registry/schema-org/TVSeason.schema.json new file mode 100644 index 0000000..8ebbff2 --- /dev/null +++ b/registry/schema-org/TVSeason.schema.json @@ -0,0 +1,44 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:TVSeason", + "title": "TVSeason", + "description": "Season dedicated to TV broadcast and associated online delivery.", + "type": "object", + "allOf": [ + { + "description": "The most generic kind of creative work, including books, movies, photographs, software programs, etc.", + "$ref": "schema:CreativeWork" + }, + { + "description": "A media season, e.g. TV, radio, video game etc.", + "$ref": "schema:CreativeWorkSeason" + } + ], + "properties": { + "countryOfOrigin": { + "description": "The country of origin of something, including products as well as creative works such as movie and TV content.\n\nIn the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable.\n\nIn the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.", + "$ref": "schema:Country" + }, + "partOfTVSeries": { + "description": "The TV series to which this episode or season belongs.", + "$ref": "schema:TVSeries" + }, + "titleEIDR": { + "description": "An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing at the most general/abstract level, a work of film or television.\n\nFor 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]].\n\nSince schema.org types like [[Movie]], [[TVEpisode]], [[TVSeason]], and [[TVSeries]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description.\n", + "oneOf": [ + { + "anyOf": [{ "type": "string", "format": "uri" }, { "type": "string" }] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" } + ] + } + } + ] + } + } +} diff --git a/registry/schema-org/TVSeries.schema.json b/registry/schema-org/TVSeries.schema.json new file mode 100644 index 0000000..c096dd1 --- /dev/null +++ b/registry/schema-org/TVSeries.schema.json @@ -0,0 +1,146 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:TVSeries", + "title": "TVSeries", + "description": "CreativeWorkSeries dedicated to TV broadcast and associated online delivery.", + "type": "object", + "allOf": [ + { + "description": "The most generic kind of creative work, including books, movies, photographs, software programs, etc.", + "$ref": "schema:CreativeWork" + }, + { + "description": "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 ", + "$ref": "schema:CreativeWorkSeries" + } + ], + "properties": { + "actor": { + "description": "An actor (individual or a group), 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.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:PerformingGroup" }, + { "$ref": "schema:Person" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:PerformingGroup" }, + { "$ref": "schema:Person" } + ] + } + } + ] + }, + "actors": { + "description": "An actor, e.g. in TV, radio, movie, video games etc. Actors can be associated with individual items or with a series, episode, clip.", + "oneOf": [ + { "$ref": "schema:Person" }, + { "type": "array", "items": { "$ref": "schema:Person" } } + ] + }, + "containsSeason": { + "description": "A season that is part of the media series.", + "oneOf": [ + { "$ref": "schema:CreativeWorkSeason" }, + { "type": "array", "items": { "$ref": "schema:CreativeWorkSeason" } } + ] + }, + "countryOfOrigin": { + "description": "The country of origin of something, including products as well as creative works such as movie and TV content.\n\nIn the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable.\n\nIn the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.", + "$ref": "schema:Country" + }, + "director": { + "description": "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.", + "$ref": "schema:Person" + }, + "directors": { + "description": "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.", + "oneOf": [ + { "$ref": "schema:Person" }, + { "type": "array", "items": { "$ref": "schema:Person" } } + ] + }, + "episode": { + "description": "An episode of a TV, radio or game media within a series or season.", + "oneOf": [ + { "$ref": "schema:Episode" }, + { "type": "array", "items": { "$ref": "schema:Episode" } } + ] + }, + "episodes": { + "description": "An episode of a TV/radio series or season.", + "oneOf": [ + { "$ref": "schema:Episode" }, + { "type": "array", "items": { "$ref": "schema:Episode" } } + ] + }, + "musicBy": { + "description": "The composer of the soundtrack.", + "anyOf": [{ "$ref": "schema:MusicGroup" }, { "$ref": "schema:Person" }] + }, + "numberOfEpisodes": { + "description": "The number of episodes in this season or series.", + "type": "integer" + }, + "numberOfSeasons": { + "description": "The number of seasons in this series.", + "type": "integer" + }, + "productionCompany": { + "description": "The production company or studio responsible for the item, e.g. series, video game, episode etc.", + "$ref": "schema:Organization" + }, + "season": { + "description": "A season in a media series.", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:CreativeWorkSeason" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:CreativeWorkSeason" } + ] + } + } + ] + }, + "seasons": { + "description": "A season in a media series.", + "oneOf": [ + { "$ref": "schema:CreativeWorkSeason" }, + { "type": "array", "items": { "$ref": "schema:CreativeWorkSeason" } } + ] + }, + "titleEIDR": { + "description": "An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing at the most general/abstract level, a work of film or television.\n\nFor 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]].\n\nSince schema.org types like [[Movie]], [[TVEpisode]], [[TVSeason]], and [[TVSeries]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description.\n", + "oneOf": [ + { + "anyOf": [{ "type": "string", "format": "uri" }, { "type": "string" }] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" } + ] + } + } + ] + }, + "trailer": { + "description": "The trailer of a movie or TV/radio series, season, episode, etc.", + "$ref": "schema:VideoObject" + } + } +} diff --git a/registry/schema-org/Table.schema.json b/registry/schema-org/Table.schema.json new file mode 100644 index 0000000..5247e6b --- /dev/null +++ b/registry/schema-org/Table.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Table", + "title": "Table", + "description": "A table on a Web page.", + "type": "object", + "allOf": [ + { + "description": "A web page element, like a table or an image.", + "$ref": "schema:WebPageElement" + } + ] +} diff --git a/registry/schema-org/TakeAction.schema.json b/registry/schema-org/TakeAction.schema.json new file mode 100644 index 0000000..404d557 --- /dev/null +++ b/registry/schema-org/TakeAction.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:TakeAction", + "title": "TakeAction", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "The act of transferring/moving (abstract or concrete) animate or inanimate objects from one place to another.", + "$ref": "schema:TransferAction" + } + ] +} diff --git a/registry/schema-org/TattooParlor.schema.json b/registry/schema-org/TattooParlor.schema.json new file mode 100644 index 0000000..f9f2e18 --- /dev/null +++ b/registry/schema-org/TattooParlor.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:TattooParlor", + "title": "TattooParlor", + "description": "A tattoo parlor.", + "type": "object", + "allOf": [ + { + "description": "Health and beauty.", + "$ref": "schema:HealthAndBeautyBusiness" + } + ] +} diff --git a/registry/schema-org/Taxi.schema.json b/registry/schema-org/Taxi.schema.json new file mode 100644 index 0000000..f1d6815 --- /dev/null +++ b/registry/schema-org/Taxi.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Taxi", + "title": "Taxi", + "description": "A taxi.", + "type": "object", + "allOf": [ + { + "description": "A service provided by an organization, e.g. delivery service, print services, etc.", + "$ref": "schema:Service" + } + ] +} diff --git a/registry/schema-org/TaxiReservation.schema.json b/registry/schema-org/TaxiReservation.schema.json new file mode 100644 index 0000000..a5e38e0 --- /dev/null +++ b/registry/schema-org/TaxiReservation.schema.json @@ -0,0 +1,52 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:TaxiReservation", + "title": "TaxiReservation", + "description": "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]].", + "type": "object", + "allOf": [ + { + "description": "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]].", + "$ref": "schema:Reservation" + } + ], + "properties": { + "partySize": { + "description": "Number of people the reservation should accommodate.", + "oneOf": [ + { + "anyOf": [ + { "type": "integer" }, + { "$ref": "schema:QuantitativeValue" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "integer" }, + { "$ref": "schema:QuantitativeValue" } + ] + } + } + ] + }, + "pickupLocation": { + "description": "Where a taxi will pick up a passenger or a rental car can be picked up.", + "oneOf": [ + { "$ref": "schema:Place" }, + { "type": "array", "items": { "$ref": "schema:Place" } } + ] + }, + "pickupTime": { + "description": "When a taxi will pick up a passenger or a rental car can be picked up.", + "oneOf": [ + { "type": "string", "format": "date-time" }, + { + "type": "array", + "items": { "type": "string", "format": "date-time" } + } + ] + } + } +} diff --git a/registry/schema-org/TaxiService.schema.json b/registry/schema-org/TaxiService.schema.json new file mode 100644 index 0000000..52f7b51 --- /dev/null +++ b/registry/schema-org/TaxiService.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:TaxiService", + "title": "TaxiService", + "description": "A service for a vehicle for hire with a driver for local travel. Fares are usually calculated based on distance traveled.", + "type": "object", + "allOf": [ + { + "description": "A service provided by an organization, e.g. delivery service, print services, etc.", + "$ref": "schema:Service" + } + ] +} diff --git a/registry/schema-org/TaxiStand.schema.json b/registry/schema-org/TaxiStand.schema.json new file mode 100644 index 0000000..4cd2efc --- /dev/null +++ b/registry/schema-org/TaxiStand.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:TaxiStand", + "title": "TaxiStand", + "description": "A taxi stand.", + "type": "object", + "allOf": [ + { + "description": "A public structure, such as a town hall or concert hall.", + "$ref": "schema:CivicStructure" + } + ] +} diff --git a/registry/schema-org/Taxon.schema.json b/registry/schema-org/Taxon.schema.json new file mode 100644 index 0000000..29c57c4 --- /dev/null +++ b/registry/schema-org/Taxon.schema.json @@ -0,0 +1,71 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Taxon", + "title": "Taxon", + "description": "A set of organisms asserted to represent a natural cohesive biological unit.", + "type": "object", + "allOf": [ + { "description": "The most generic type of item.", "$ref": "schema:Thing" } + ], + "properties": { + "childTaxon": { + "description": "Closest child taxa of the taxon in question.", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:Taxon" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:Taxon" } + ] + } + } + ] + }, + "hasDefinedTerm": { + "description": "A Defined Term contained in this term set.", + "oneOf": [ + { "$ref": "schema:DefinedTerm" }, + { "type": "array", "items": { "$ref": "schema:DefinedTerm" } } + ] + }, + "parentTaxon": { + "description": "Closest parent taxon of the taxon in question.", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:Taxon" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:Taxon" } + ] + } + } + ] + }, + "taxonRank": { + "description": "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.", + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:PropertyValue" } + ] + } + } +} diff --git a/registry/schema-org/TechArticle.schema.json b/registry/schema-org/TechArticle.schema.json new file mode 100644 index 0000000..4168e1c --- /dev/null +++ b/registry/schema-org/TechArticle.schema.json @@ -0,0 +1,23 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:TechArticle", + "title": "TechArticle", + "description": "A technical article - Example: How-to (task) topics, step-by-step, procedural troubleshooting, specifications, etc.", + "type": "object", + "allOf": [ + { + "description": "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).", + "$ref": "schema:Article" + } + ], + "properties": { + "dependencies": { + "description": "Prerequisites needed to fulfill steps in article.", + "type": "string" + }, + "proficiencyLevel": { + "description": "Proficiency needed for this content; expected values: 'Beginner', 'Expert'.", + "type": "string" + } + } +} diff --git a/registry/schema-org/TelevisionChannel.schema.json b/registry/schema-org/TelevisionChannel.schema.json new file mode 100644 index 0000000..3ec1c4a --- /dev/null +++ b/registry/schema-org/TelevisionChannel.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:TelevisionChannel", + "title": "TelevisionChannel", + "description": "A unique instance of a television BroadcastService on a CableOrSatelliteService lineup.", + "type": "object", + "allOf": [ + { + "description": "A unique instance of a BroadcastService on a CableOrSatelliteService lineup.", + "$ref": "schema:BroadcastChannel" + } + ] +} diff --git a/registry/schema-org/TelevisionStation.schema.json b/registry/schema-org/TelevisionStation.schema.json new file mode 100644 index 0000000..f078b31 --- /dev/null +++ b/registry/schema-org/TelevisionStation.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:TelevisionStation", + "title": "TelevisionStation", + "description": "A television station.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:LocalBusiness" + } + ] +} diff --git a/registry/schema-org/TennisComplex.schema.json b/registry/schema-org/TennisComplex.schema.json new file mode 100644 index 0000000..2305d2b --- /dev/null +++ b/registry/schema-org/TennisComplex.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:TennisComplex", + "title": "TennisComplex", + "description": "A tennis complex.", + "type": "object", + "allOf": [ + { + "description": "A sports location, such as a playing field.", + "$ref": "schema:SportsActivityLocation" + } + ] +} diff --git a/registry/schema-org/TextDigitalDocument.schema.json b/registry/schema-org/TextDigitalDocument.schema.json new file mode 100644 index 0000000..726f6c5 --- /dev/null +++ b/registry/schema-org/TextDigitalDocument.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:TextDigitalDocument", + "title": "TextDigitalDocument", + "description": "A file composed primarily of text.", + "type": "object", + "allOf": [ + { + "description": "An electronic file or document.", + "$ref": "schema:DigitalDocument" + } + ] +} diff --git a/registry/schema-org/TextObject.schema.json b/registry/schema-org/TextObject.schema.json new file mode 100644 index 0000000..51a03d5 --- /dev/null +++ b/registry/schema-org/TextObject.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:TextObject", + "title": "TextObject", + "description": "A text file. The text can be unformatted or contain markup, html, etc.", + "type": "object", + "allOf": [ + { + "description": "A media object, such as an image, video, audio, or text 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).", + "$ref": "schema:MediaObject" + } + ] +} diff --git a/registry/schema-org/TheaterEvent.schema.json b/registry/schema-org/TheaterEvent.schema.json new file mode 100644 index 0000000..c7b94ad --- /dev/null +++ b/registry/schema-org/TheaterEvent.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:TheaterEvent", + "title": "TheaterEvent", + "description": "Event type: Theater performance.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:Event" + } + ] +} diff --git a/registry/schema-org/TheaterGroup.schema.json b/registry/schema-org/TheaterGroup.schema.json new file mode 100644 index 0000000..6b18dbb --- /dev/null +++ b/registry/schema-org/TheaterGroup.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:TheaterGroup", + "title": "TheaterGroup", + "description": "A theater group or company, for example, the Royal Shakespeare Company or Druid Theatre.", + "type": "object", + "allOf": [ + { + "description": "A performance group, such as a band, an orchestra, or a circus.", + "$ref": "schema:PerformingGroup" + } + ] +} diff --git a/registry/schema-org/TherapeuticProcedure.schema.json b/registry/schema-org/TherapeuticProcedure.schema.json new file mode 100644 index 0000000..290593f --- /dev/null +++ b/registry/schema-org/TherapeuticProcedure.schema.json @@ -0,0 +1,36 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:TherapeuticProcedure", + "title": "TherapeuticProcedure", + "description": "A medical procedure intended primarily for therapeutic purposes, aimed at improving a health condition.", + "type": "object", + "allOf": [ + { + "description": "A process of care used in either a diagnostic, therapeutic, preventive or palliative capacity that relies on invasive (surgical), non-invasive, or other techniques.", + "$ref": "schema:MedicalProcedure" + } + ], + "properties": { + "adverseOutcome": { + "description": "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.", + "oneOf": [ + { "$ref": "schema:MedicalEntity" }, + { "type": "array", "items": { "$ref": "schema:MedicalEntity" } } + ] + }, + "doseSchedule": { + "description": "A dosing schedule for the drug for a given population, either observed, recommended, or maximum dose based on the type used.", + "oneOf": [ + { "$ref": "schema:DoseSchedule" }, + { "type": "array", "items": { "$ref": "schema:DoseSchedule" } } + ] + }, + "drug": { + "description": "Specifying a drug or medicine used in a medication procedure.", + "oneOf": [ + { "$ref": "schema:Drug" }, + { "type": "array", "items": { "$ref": "schema:Drug" } } + ] + } + } +} diff --git a/registry/schema-org/Thesis.schema.json b/registry/schema-org/Thesis.schema.json new file mode 100644 index 0000000..572f38d --- /dev/null +++ b/registry/schema-org/Thesis.schema.json @@ -0,0 +1,22 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Thesis", + "title": "Thesis", + "description": "A thesis or dissertation document submitted in support of candidature for an academic degree or professional qualification.", + "type": "object", + "allOf": [ + { + "description": "The most generic kind of creative work, including books, movies, photographs, software programs, etc.", + "$ref": "schema:CreativeWork" + } + ], + "properties": { + "inSupportOf": { + "description": "Qualification, candidature, degree, application that Thesis supports.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + } + } +} diff --git a/registry/schema-org/Thing.schema.json b/registry/schema-org/Thing.schema.json new file mode 100644 index 0000000..fc9cffc --- /dev/null +++ b/registry/schema-org/Thing.schema.json @@ -0,0 +1,142 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Thing", + "title": "Thing", + "description": "The most generic type of item.", + "type": "object", + "properties": { + "@context": { "type": "string" }, + "@type": { "type": "string" }, + "additionalType": { + "description": "An additional type for the item, typically used for adding more specific types from external vocabularies in microdata syntax. This is a relationship between something and a class that the thing is in. Typically the value is a URI-identified RDF class, and in this case corresponds to the\n use of rdf:type in RDF. Text values can be used sparingly, for cases where useful information can be added without their being an appropriate schema to reference. In the case of text values, the class label should follow the schema.org style guide.", + "oneOf": [ + { + "anyOf": [{ "type": "string", "format": "uri" }, { "type": "string" }] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" } + ] + } + } + ] + }, + "alternateName": { + "description": "An alias for the item.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "description": { + "description": "A description of the item.", + "oneOf": [ + { "anyOf": [{ "type": "string" }, { "$ref": "schema:TextObject" }] }, + { + "type": "array", + "items": { + "anyOf": [{ "type": "string" }, { "$ref": "schema:TextObject" }] + } + } + ] + }, + "disambiguatingDescription": { + "description": "A sub property of description. A short description of the item used to disambiguate from other, similar items. Information from other properties (in particular, name) may be necessary for the description to be useful for disambiguation.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "identifier": { + "description": "The identifier property represents any kind of identifier for any kind of [[Thing]], such as ISBNs, GTIN codes, UUIDs etc. Schema.org provides dedicated properties for representing many of these, either as textual strings or as URL (URI) links. See [background notes](/docs/datamodel.html#identifierBg) for more details.\n ", + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:PropertyValue" } + ] + }, + "image": { + "description": "An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:ImageObject" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:ImageObject" } + ] + } + } + ] + }, + "mainEntityOfPage": { + "description": "Indicates a page (or other CreativeWork) for which this thing is the main entity being described. See [background notes](/docs/datamodel.html#mainEntityBackground) for details.", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:CreativeWork" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:CreativeWork" } + ] + } + } + ] + }, + "name": { "description": "The name of the item.", "type": "string" }, + "potentialAction": { + "description": "Indicates a potential Action, which describes an idealized action in which this thing would play an 'object' role.", + "oneOf": [ + { "$ref": "schema:Action" }, + { "type": "array", "items": { "$ref": "schema:Action" } } + ] + }, + "sameAs": { + "description": "URL of a reference Web page that unambiguously indicates the item's identity. E.g. the URL of the item's Wikipedia page, Wikidata entry, or official website.", + "oneOf": [ + { "type": "string", "format": "uri" }, + { "type": "array", "items": { "type": "string", "format": "uri" } } + ] + }, + "subjectOf": { + "description": "A CreativeWork or Event about this Thing.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:CreativeWork" }, + { "$ref": "schema:Event" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:CreativeWork" }, + { "$ref": "schema:Event" } + ] + } + } + ] + }, + "url": { + "description": "URL of the item.", + "type": "string", + "format": "uri" + } + } +} diff --git a/registry/schema-org/Ticket.schema.json b/registry/schema-org/Ticket.schema.json new file mode 100644 index 0000000..0098903 --- /dev/null +++ b/registry/schema-org/Ticket.schema.json @@ -0,0 +1,67 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Ticket", + "title": "Ticket", + "description": "Used to describe a ticket to an event, a flight, a bus ride, etc.", + "type": "object", + "allOf": [ + { + "description": "A utility class that serves as the umbrella for a number of 'intangible' things such as quantities, structured values, etc.", + "$ref": "schema:Intangible" + } + ], + "properties": { + "dateIssued": { + "description": "The date the ticket was issued.", + "anyOf": [ + { "type": "string", "format": "date" }, + { "type": "string", "format": "date-time" } + ] + }, + "issuedBy": { + "description": "The organization issuing the item, for example a [[Permit]], [[Ticket]], or [[Certification]].", + "$ref": "schema:Organization" + }, + "priceCurrency": { + "description": "The currency of the price, or a price component when attached to [[PriceSpecification]] and its subtypes.\\n\\nUse standard formats: [ISO 4217 currency format](http://en.wikipedia.org/wiki/ISO_4217), e.g. \"USD\"; [Ticker symbol](https://en.wikipedia.org/wiki/List_of_cryptocurrencies) for cryptocurrencies, e.g. \"BTC\"; well known names for [Local Exchange Trading Systems](https://en.wikipedia.org/wiki/Local_exchange_trading_system) (LETS) and other currency types, e.g. \"Ithaca HOUR\".", + "type": "string" + }, + "ticketNumber": { + "description": "The unique identifier for the ticket.", + "type": "string" + }, + "ticketToken": { + "description": "Reference to an asset (e.g., Barcode, QR code image or PDF) usable for entrance.", + "oneOf": [ + { + "anyOf": [{ "type": "string", "format": "uri" }, { "type": "string" }] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" } + ] + } + } + ] + }, + "ticketedSeat": { + "description": "The seat associated with the ticket.", + "$ref": "schema:Seat" + }, + "totalPrice": { + "description": "The total price for the reservation or ticket, including applicable taxes, shipping, etc.\\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.", + "anyOf": [ + { "type": "number" }, + { "type": "string" }, + { "$ref": "schema:PriceSpecification" } + ] + }, + "underName": { + "description": "The person or organization the reservation or ticket is for.", + "anyOf": [{ "$ref": "schema:Organization" }, { "$ref": "schema:Person" }] + } + } +} diff --git a/registry/schema-org/TieAction.schema.json b/registry/schema-org/TieAction.schema.json new file mode 100644 index 0000000..d14b99c --- /dev/null +++ b/registry/schema-org/TieAction.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:TieAction", + "title": "TieAction", + "description": "The act of reaching a draw in a competitive activity.", + "type": "object", + "allOf": [ + { + "description": "The act of accomplishing something via previous efforts. It is an instantaneous action rather than an ongoing process.", + "$ref": "schema:AchieveAction" + } + ] +} diff --git a/registry/schema-org/TierBenefitEnumeration.schema.json b/registry/schema-org/TierBenefitEnumeration.schema.json new file mode 100644 index 0000000..60392f3 --- /dev/null +++ b/registry/schema-org/TierBenefitEnumeration.schema.json @@ -0,0 +1,25 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:TierBenefitEnumeration", + "title": "TierBenefitEnumeration", + "description": "An enumeration of possible benefits as part of a loyalty (members) program.", + "type": "string", + "oneOf": [ + { + "description": "Benefit of the tier is earning of loyalty points.", + "const": "TierBenefitLoyaltyPoints" + }, + { + "description": "Benefit of the tier is a members-only price.", + "const": "TierBenefitLoyaltyPrice" + }, + { + "description": "Benefit of the tier is members-only returns, for example free unlimited returns.", + "const": "TierBenefitLoyaltyReturns" + }, + { + "description": "Benefit of the tier is a members-only shipping price or speed (for example free shipping or 1-day shipping).", + "const": "TierBenefitLoyaltyShipping" + } + ] +} diff --git a/registry/schema-org/TipAction.schema.json b/registry/schema-org/TipAction.schema.json new file mode 100644 index 0000000..f47fbcc --- /dev/null +++ b/registry/schema-org/TipAction.schema.json @@ -0,0 +1,39 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:TipAction", + "title": "TipAction", + "description": "The act of giving money voluntarily to a beneficiary in recognition of services rendered.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:TradeAction" + } + ], + "properties": { + "recipient": { + "description": "A sub property of participant. The participant who is at the receiving end of the action.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:Audience" }, + { "$ref": "schema:ContactPoint" }, + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:Audience" }, + { "$ref": "schema:ContactPoint" }, + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + } + } + ] + } + } +} diff --git a/registry/schema-org/TireShop.schema.json b/registry/schema-org/TireShop.schema.json new file mode 100644 index 0000000..f1b302e --- /dev/null +++ b/registry/schema-org/TireShop.schema.json @@ -0,0 +1,8 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:TireShop", + "title": "TireShop", + "description": "A tire shop.", + "type": "object", + "allOf": [{ "description": "A retail good store.", "$ref": "schema:Store" }] +} diff --git a/registry/schema-org/TouristAttraction.schema.json b/registry/schema-org/TouristAttraction.schema.json new file mode 100644 index 0000000..c0d6869 --- /dev/null +++ b/registry/schema-org/TouristAttraction.schema.json @@ -0,0 +1,39 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:TouristAttraction", + "title": "TouristAttraction", + "description": "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)", + "type": "object", + "allOf": [ + { + "description": "Entities that have a somewhat fixed, physical extension.", + "$ref": "schema:Place" + } + ], + "properties": { + "availableLanguage": { + "description": "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]].", + "oneOf": [ + { "anyOf": [{ "type": "string" }, { "$ref": "schema:Language" }] }, + { + "type": "array", + "items": { + "anyOf": [{ "type": "string" }, { "$ref": "schema:Language" }] + } + } + ] + }, + "touristType": { + "description": "Attraction suitable for type(s) of tourist. E.g. children, visitors from a particular country, etc. ", + "oneOf": [ + { "anyOf": [{ "type": "string" }, { "$ref": "schema:Audience" }] }, + { + "type": "array", + "items": { + "anyOf": [{ "type": "string" }, { "$ref": "schema:Audience" }] + } + } + ] + } + } +} diff --git a/registry/schema-org/TouristDestination.schema.json b/registry/schema-org/TouristDestination.schema.json new file mode 100644 index 0000000..0823757 --- /dev/null +++ b/registry/schema-org/TouristDestination.schema.json @@ -0,0 +1,34 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:TouristDestination", + "title": "TouristDestination", + "description": "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.)", + "type": "object", + "allOf": [ + { + "description": "Entities that have a somewhat fixed, physical extension.", + "$ref": "schema:Place" + } + ], + "properties": { + "includesAttraction": { + "description": "Attraction located at destination.", + "oneOf": [ + { "$ref": "schema:TouristAttraction" }, + { "type": "array", "items": { "$ref": "schema:TouristAttraction" } } + ] + }, + "touristType": { + "description": "Attraction suitable for type(s) of tourist. E.g. children, visitors from a particular country, etc. ", + "oneOf": [ + { "anyOf": [{ "type": "string" }, { "$ref": "schema:Audience" }] }, + { + "type": "array", + "items": { + "anyOf": [{ "type": "string" }, { "$ref": "schema:Audience" }] + } + } + ] + } + } +} diff --git a/registry/schema-org/TouristInformationCenter.schema.json b/registry/schema-org/TouristInformationCenter.schema.json new file mode 100644 index 0000000..8a82898 --- /dev/null +++ b/registry/schema-org/TouristInformationCenter.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:TouristInformationCenter", + "title": "TouristInformationCenter", + "description": "A tourist information center.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:LocalBusiness" + } + ] +} diff --git a/registry/schema-org/TouristTrip.schema.json b/registry/schema-org/TouristTrip.schema.json new file mode 100644 index 0000000..cb7c05d --- /dev/null +++ b/registry/schema-org/TouristTrip.schema.json @@ -0,0 +1,27 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:TouristTrip", + "title": "TouristTrip", + "description": "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.)", + "type": "object", + "allOf": [ + { + "description": "A trip or journey. An itinerary of visits to one or more places.", + "$ref": "schema:Trip" + } + ], + "properties": { + "touristType": { + "description": "Attraction suitable for type(s) of tourist. E.g. children, visitors from a particular country, etc. ", + "oneOf": [ + { "anyOf": [{ "type": "string" }, { "$ref": "schema:Audience" }] }, + { + "type": "array", + "items": { + "anyOf": [{ "type": "string" }, { "$ref": "schema:Audience" }] + } + } + ] + } + } +} diff --git a/registry/schema-org/ToyStore.schema.json b/registry/schema-org/ToyStore.schema.json new file mode 100644 index 0000000..5065781 --- /dev/null +++ b/registry/schema-org/ToyStore.schema.json @@ -0,0 +1,8 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:ToyStore", + "title": "ToyStore", + "description": "A toy store.", + "type": "object", + "allOf": [{ "description": "A retail good store.", "$ref": "schema:Store" }] +} diff --git a/registry/schema-org/TrackAction.schema.json b/registry/schema-org/TrackAction.schema.json new file mode 100644 index 0000000..4944f4b --- /dev/null +++ b/registry/schema-org/TrackAction.schema.json @@ -0,0 +1,22 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:TrackAction", + "title": "TrackAction", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "The act of finding an object.\\n\\nRelated actions:\\n\\n* [[SearchAction]]: FindAction is generally lead by a SearchAction, but not necessarily.", + "$ref": "schema:FindAction" + } + ], + "properties": { + "deliveryMethod": { + "description": "A sub property of instrument. The method of delivery.", + "oneOf": [ + { "$ref": "schema:DeliveryMethod" }, + { "type": "array", "items": { "$ref": "schema:DeliveryMethod" } } + ] + } + } +} diff --git a/registry/schema-org/TradeAction.schema.json b/registry/schema-org/TradeAction.schema.json new file mode 100644 index 0000000..caa6c10 --- /dev/null +++ b/registry/schema-org/TradeAction.schema.json @@ -0,0 +1,30 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:TradeAction", + "title": "TradeAction", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "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).", + "$ref": "schema:Action" + } + ], + "properties": { + "price": { + "description": "The offer price of a product, or of a price component when attached to PriceSpecification and its subtypes.\\n\\nUsage guidelines:\\n\\n* 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.\\n* Use '.' (Unicode 'FULL STOP' (U+002E)) rather than ',' to indicate a decimal point. Avoid using these symbols as a readability separator.\\n* 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.\\n* Use values from 0123456789 (Unicode 'DIGIT ZERO' (U+0030) to 'DIGIT NINE' (U+0039)) rather than superficially similar Unicode symbols.\n ", + "anyOf": [{ "type": "number" }, { "type": "string" }] + }, + "priceCurrency": { + "description": "The currency of the price, or a price component when attached to [[PriceSpecification]] and its subtypes.\\n\\nUse standard formats: [ISO 4217 currency format](http://en.wikipedia.org/wiki/ISO_4217), e.g. \"USD\"; [Ticker symbol](https://en.wikipedia.org/wiki/List_of_cryptocurrencies) for cryptocurrencies, e.g. \"BTC\"; well known names for [Local Exchange Trading Systems](https://en.wikipedia.org/wiki/Local_exchange_trading_system) (LETS) and other currency types, e.g. \"Ithaca HOUR\".", + "type": "string" + }, + "priceSpecification": { + "description": "One or more detailed price specifications, indicating the unit price and delivery or payment charges.", + "oneOf": [ + { "$ref": "schema:PriceSpecification" }, + { "type": "array", "items": { "$ref": "schema:PriceSpecification" } } + ] + } + } +} diff --git a/registry/schema-org/TrainReservation.schema.json b/registry/schema-org/TrainReservation.schema.json new file mode 100644 index 0000000..b192d57 --- /dev/null +++ b/registry/schema-org/TrainReservation.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:TrainReservation", + "title": "TrainReservation", + "description": "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]].", + "type": "object", + "allOf": [ + { + "description": "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]].", + "$ref": "schema:Reservation" + } + ] +} diff --git a/registry/schema-org/TrainStation.schema.json b/registry/schema-org/TrainStation.schema.json new file mode 100644 index 0000000..7c8df8d --- /dev/null +++ b/registry/schema-org/TrainStation.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:TrainStation", + "title": "TrainStation", + "description": "A train station.", + "type": "object", + "allOf": [ + { + "description": "A public structure, such as a town hall or concert hall.", + "$ref": "schema:CivicStructure" + } + ] +} diff --git a/registry/schema-org/TrainTrip.schema.json b/registry/schema-org/TrainTrip.schema.json new file mode 100644 index 0000000..12aaad5 --- /dev/null +++ b/registry/schema-org/TrainTrip.schema.json @@ -0,0 +1,39 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:TrainTrip", + "title": "TrainTrip", + "description": "A trip on a commercial train line.", + "type": "object", + "allOf": [ + { + "description": "A trip or journey. An itinerary of visits to one or more places.", + "$ref": "schema:Trip" + } + ], + "properties": { + "arrivalPlatform": { + "description": "The platform where the train arrives.", + "type": "string" + }, + "arrivalStation": { + "description": "The station where the train trip ends.", + "$ref": "schema:TrainStation" + }, + "departurePlatform": { + "description": "The platform from which the train departs.", + "type": "string" + }, + "departureStation": { + "description": "The station from which the train departs.", + "$ref": "schema:TrainStation" + }, + "trainName": { + "description": "The name of the train (e.g. The Orient Express).", + "type": "string" + }, + "trainNumber": { + "description": "The unique identifier for the train.", + "type": "string" + } + } +} diff --git a/registry/schema-org/TransferAction.schema.json b/registry/schema-org/TransferAction.schema.json new file mode 100644 index 0000000..1039849 --- /dev/null +++ b/registry/schema-org/TransferAction.schema.json @@ -0,0 +1,29 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:TransferAction", + "title": "TransferAction", + "description": "The act of transferring/moving (abstract or concrete) animate or inanimate objects from one place to another.", + "type": "object", + "allOf": [ + { + "description": "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).", + "$ref": "schema:Action" + } + ], + "properties": { + "fromLocation": { + "description": "A sub property of location. The original location of the object or the agent before the action.", + "oneOf": [ + { "$ref": "schema:Place" }, + { "type": "array", "items": { "$ref": "schema:Place" } } + ] + }, + "toLocation": { + "description": "A sub property of location. The final location of the object or the agent after the action.", + "oneOf": [ + { "$ref": "schema:Place" }, + { "type": "array", "items": { "$ref": "schema:Place" } } + ] + } + } +} diff --git a/registry/schema-org/TravelAction.schema.json b/registry/schema-org/TravelAction.schema.json new file mode 100644 index 0000000..3384ea6 --- /dev/null +++ b/registry/schema-org/TravelAction.schema.json @@ -0,0 +1,28 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:TravelAction", + "title": "TravelAction", + "description": "The act of traveling from a fromLocation to a destination by a specified mode of transport, optionally with participants.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:MoveAction" + } + ], + "properties": { + "distance": { + "description": "The distance travelled, e.g. exercising or travelling.", + "oneOf": [ + { "type": "string", "$comment": "https://schema.org/Distance" }, + { + "type": "array", + "items": { + "type": "string", + "$comment": "https://schema.org/Distance" + } + } + ] + } + } +} diff --git a/registry/schema-org/TravelAgency.schema.json b/registry/schema-org/TravelAgency.schema.json new file mode 100644 index 0000000..a712548 --- /dev/null +++ b/registry/schema-org/TravelAgency.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:TravelAgency", + "title": "TravelAgency", + "description": "A travel agency.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:LocalBusiness" + } + ] +} diff --git a/registry/schema-org/TreatmentIndication.schema.json b/registry/schema-org/TreatmentIndication.schema.json new file mode 100644 index 0000000..ad1f8a6 --- /dev/null +++ b/registry/schema-org/TreatmentIndication.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:TreatmentIndication", + "title": "TreatmentIndication", + "description": "An indication for treating an underlying condition, symptom, etc.", + "type": "object", + "allOf": [ + { + "description": "A condition or factor that indicates use of a medical therapy, including signs, symptoms, risk factors, anatomical states, etc.", + "$ref": "schema:MedicalIndication" + } + ] +} diff --git a/registry/schema-org/Trip.schema.json b/registry/schema-org/Trip.schema.json new file mode 100644 index 0000000..b275536 --- /dev/null +++ b/registry/schema-org/Trip.schema.json @@ -0,0 +1,77 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Trip", + "title": "Trip", + "description": "A trip or journey. An itinerary of visits to one or more places.", + "type": "object", + "allOf": [ + { + "description": "A utility class that serves as the umbrella for a number of 'intangible' things such as quantities, structured values, etc.", + "$ref": "schema:Intangible" + } + ], + "properties": { + "arrivalTime": { + "description": "The expected arrival time.", + "anyOf": [ + { "type": "string", "format": "date-time" }, + { "type": "string", "format": "time" } + ] + }, + "departureTime": { + "description": "The expected departure time.", + "anyOf": [ + { "type": "string", "format": "date-time" }, + { "type": "string", "format": "time" } + ] + }, + "itinerary": { + "description": "Destination(s) ( [[Place]] ) that make up a trip. For a trip where destination order is important use [[ItemList]] to specify that order (see examples).", + "oneOf": [ + { + "anyOf": [{ "$ref": "schema:ItemList" }, { "$ref": "schema:Place" }] + }, + { + "type": "array", + "items": { + "anyOf": [{ "$ref": "schema:ItemList" }, { "$ref": "schema:Place" }] + } + } + ] + }, + "offers": { + "description": "An offer to provide this item—for example, an offer to sell a product, rent the DVD of a movie, perform a service, or give away tickets to an event. Use [[businessFunction]] to indicate the kind of transaction offered, i.e. sell, lease, etc. This property can also be used to describe a [[Demand]]. While this property is listed as expected on a number of common types, it can be used in others. In that case, using a second type, such as Product or a subtype of Product, can clarify the nature of the offer.\n ", + "oneOf": [ + { "anyOf": [{ "$ref": "schema:Demand" }, { "$ref": "schema:Offer" }] }, + { + "type": "array", + "items": { + "anyOf": [{ "$ref": "schema:Demand" }, { "$ref": "schema:Offer" }] + } + } + ] + }, + "partOfTrip": { + "description": "Identifies that this [[Trip]] is a subTrip of another Trip. For example Day 1, Day 2, etc. of a multi-day trip.", + "oneOf": [ + { "$ref": "schema:Trip" }, + { "type": "array", "items": { "$ref": "schema:Trip" } } + ] + }, + "provider": { + "description": "The service provider, service operator, or service performer; the goods producer. Another party (a seller) may offer those services or goods on behalf of the provider. A provider may also serve as the seller.", + "anyOf": [{ "$ref": "schema:Organization" }, { "$ref": "schema:Person" }] + }, + "subTrip": { + "description": "Identifies a [[Trip]] that is a subTrip of this Trip. For example Day 1, Day 2, etc. of a multi-day trip.", + "oneOf": [ + { "$ref": "schema:Trip" }, + { "type": "array", "items": { "$ref": "schema:Trip" } } + ] + }, + "tripOrigin": { + "description": "The location of origin of the trip, prior to any destination(s).", + "$ref": "schema:Place" + } + } +} diff --git a/registry/schema-org/TypeAndQuantityNode.schema.json b/registry/schema-org/TypeAndQuantityNode.schema.json new file mode 100644 index 0000000..4ab39fd --- /dev/null +++ b/registry/schema-org/TypeAndQuantityNode.schema.json @@ -0,0 +1,38 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:TypeAndQuantityNode", + "title": "TypeAndQuantityNode", + "description": "A structured value indicating the quantity, unit of measurement, and business function of goods included in a bundle offer.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:StructuredValue" + } + ], + "properties": { + "amountOfThisGood": { + "description": "The quantity of the goods included in the offer.", + "type": "number" + }, + "businessFunction": { + "description": "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.", + "$ref": "schema:BusinessFunction" + }, + "typeOfGood": { + "description": "The product that this structured value is referring to.", + "anyOf": [{ "$ref": "schema:Product" }, { "$ref": "schema:Service" }] + }, + "unitCode": { + "description": "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.", + "anyOf": [{ "type": "string", "format": "uri" }, { "type": "string" }] + }, + "unitText": { + "description": "A string or text indicating the unit of measurement. Useful if you cannot provide a standard unit code for\nunitCode.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + } + } +} diff --git a/registry/schema-org/UKNonprofitType.schema.json b/registry/schema-org/UKNonprofitType.schema.json new file mode 100644 index 0000000..1ac07db --- /dev/null +++ b/registry/schema-org/UKNonprofitType.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:UKNonprofitType", + "title": "UKNonprofitType", + "description": "UKNonprofitType: Non-profit organization type originating from the United Kingdom.", + "type": "object", + "allOf": [ + { + "description": "NonprofitType enumerates several kinds of official non-profit types of which a non-profit organization can be.", + "$ref": "schema:NonprofitType" + } + ] +} diff --git a/registry/schema-org/URL.schema.json b/registry/schema-org/URL.schema.json new file mode 100644 index 0000000..08faf76 --- /dev/null +++ b/registry/schema-org/URL.schema.json @@ -0,0 +1,8 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:URL", + "title": "URL", + "description": "Data type: URL.", + "type": "object", + "allOf": [{ "description": "Data type: Text.", "$ref": "schema:Text" }] +} diff --git a/registry/schema-org/USNonprofitType.schema.json b/registry/schema-org/USNonprofitType.schema.json new file mode 100644 index 0000000..acff5a9 --- /dev/null +++ b/registry/schema-org/USNonprofitType.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:USNonprofitType", + "title": "USNonprofitType", + "description": "USNonprofitType: Non-profit organization type originating from the United States.", + "type": "object", + "allOf": [ + { + "description": "NonprofitType enumerates several kinds of official non-profit types of which a non-profit organization can be.", + "$ref": "schema:NonprofitType" + } + ] +} diff --git a/registry/schema-org/UnRegisterAction.schema.json b/registry/schema-org/UnRegisterAction.schema.json new file mode 100644 index 0000000..d2f10b6 --- /dev/null +++ b/registry/schema-org/UnRegisterAction.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:UnRegisterAction", + "title": "UnRegisterAction", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "The act of interacting with another person or organization.", + "$ref": "schema:InteractAction" + } + ] +} diff --git a/registry/schema-org/UnitPriceSpecification.schema.json b/registry/schema-org/UnitPriceSpecification.schema.json new file mode 100644 index 0000000..8a89c52 --- /dev/null +++ b/registry/schema-org/UnitPriceSpecification.schema.json @@ -0,0 +1,93 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:UnitPriceSpecification", + "title": "UnitPriceSpecification", + "description": "The price asked for a given offer by the respective organization or person.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:PriceSpecification" + } + ], + "properties": { + "billingDuration": { + "description": "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).", + "oneOf": [ + { + "anyOf": [ + { "type": "number" }, + { "type": "string", "$comment": "https://schema.org/Duration" }, + { "$ref": "schema:QuantitativeValue" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "number" }, + { "type": "string", "$comment": "https://schema.org/Duration" }, + { "$ref": "schema:QuantitativeValue" } + ] + } + } + ] + }, + "billingIncrement": { + "description": "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.", + "type": "number" + }, + "billingStart": { + "description": "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.", + "oneOf": [ + { "type": "number" }, + { "type": "array", "items": { "type": "number" } } + ] + }, + "priceComponentType": { + "description": "Identifies a price component (for example, a line item on an invoice), part of the total price for an offer.", + "oneOf": [ + { "$ref": "schema:PriceComponentTypeEnumeration" }, + { + "type": "array", + "items": { "$ref": "schema:PriceComponentTypeEnumeration" } + } + ] + }, + "priceType": { + "description": "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.", + "oneOf": [ + { + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:PriceTypeEnumeration" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:PriceTypeEnumeration" } + ] + } + } + ] + }, + "referenceQuantity": { + "description": "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.", + "$ref": "schema:QuantitativeValue" + }, + "unitCode": { + "description": "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.", + "anyOf": [{ "type": "string", "format": "uri" }, { "type": "string" }] + }, + "unitText": { + "description": "A string or text indicating the unit of measurement. Useful if you cannot provide a standard unit code for\nunitCode.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + } + } +} diff --git a/registry/schema-org/UpdateAction.schema.json b/registry/schema-org/UpdateAction.schema.json new file mode 100644 index 0000000..f5fe45c --- /dev/null +++ b/registry/schema-org/UpdateAction.schema.json @@ -0,0 +1,29 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:UpdateAction", + "title": "UpdateAction", + "description": "The act of managing by changing/editing the state of the object.", + "type": "object", + "allOf": [ + { + "description": "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).", + "$ref": "schema:Action" + } + ], + "properties": { + "collection": { + "description": "A sub property of object. The collection target of the action.", + "oneOf": [ + { "$ref": "schema:Thing" }, + { "type": "array", "items": { "$ref": "schema:Thing" } } + ] + }, + "targetCollection": { + "description": "A sub property of object. The collection target of the action.", + "oneOf": [ + { "$ref": "schema:Thing" }, + { "type": "array", "items": { "$ref": "schema:Thing" } } + ] + } + } +} diff --git a/registry/schema-org/Url.json b/registry/schema-org/Url.json deleted file mode 100644 index 65ee930..0000000 --- a/registry/schema-org/Url.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://schema.org/Url", - "title": "URL", - "description": "A URL as defined by schema.org/URL", - "type": "string", - "format": "uri", - "examples": [ - "https://example.com", - "http://www.example.org/image.png" - ] -} diff --git a/registry/schema-org/UseAction.schema.json b/registry/schema-org/UseAction.schema.json new file mode 100644 index 0000000..37f56d9 --- /dev/null +++ b/registry/schema-org/UseAction.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:UseAction", + "title": "UseAction", + "description": "The act of applying an object to its intended purpose.", + "type": "object", + "allOf": [ + { + "description": "The act of ingesting information/resources/food.", + "$ref": "schema:ConsumeAction" + } + ] +} diff --git a/registry/schema-org/UserBlocks.schema.json b/registry/schema-org/UserBlocks.schema.json new file mode 100644 index 0000000..7ca2f31 --- /dev/null +++ b/registry/schema-org/UserBlocks.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:UserBlocks", + "title": "UserBlocks", + "description": "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]].", + "type": "object", + "allOf": [ + { + "description": "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]].", + "$ref": "schema:UserInteraction" + } + ] +} diff --git a/registry/schema-org/UserCheckins.schema.json b/registry/schema-org/UserCheckins.schema.json new file mode 100644 index 0000000..9d379f3 --- /dev/null +++ b/registry/schema-org/UserCheckins.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:UserCheckins", + "title": "UserCheckins", + "description": "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]].", + "type": "object", + "allOf": [ + { + "description": "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]].", + "$ref": "schema:UserInteraction" + } + ] +} diff --git a/registry/schema-org/UserComments.schema.json b/registry/schema-org/UserComments.schema.json new file mode 100644 index 0000000..59e631a --- /dev/null +++ b/registry/schema-org/UserComments.schema.json @@ -0,0 +1,39 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:UserComments", + "title": "UserComments", + "description": "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]].", + "type": "object", + "allOf": [ + { + "description": "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]].", + "$ref": "schema:UserInteraction" + } + ], + "properties": { + "commentText": { + "description": "The text of the UserComment.", + "type": "string" + }, + "commentTime": { + "description": "The time at which the UserComment was made.", + "anyOf": [ + { "type": "string", "format": "date" }, + { "type": "string", "format": "date-time" } + ] + }, + "creator": { + "description": "The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.", + "anyOf": [{ "$ref": "schema:Organization" }, { "$ref": "schema:Person" }] + }, + "discusses": { + "description": "Specifies the CreativeWork associated with the UserComment.", + "$ref": "schema:CreativeWork" + }, + "replyToUrl": { + "description": "The URL at which a reply may be posted to the specified UserComment.", + "type": "string", + "format": "uri" + } + } +} diff --git a/registry/schema-org/UserDownloads.schema.json b/registry/schema-org/UserDownloads.schema.json new file mode 100644 index 0000000..35d6e37 --- /dev/null +++ b/registry/schema-org/UserDownloads.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:UserDownloads", + "title": "UserDownloads", + "description": "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]].", + "type": "object", + "allOf": [ + { + "description": "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]].", + "$ref": "schema:UserInteraction" + } + ] +} diff --git a/registry/schema-org/UserInteraction.schema.json b/registry/schema-org/UserInteraction.schema.json new file mode 100644 index 0000000..b485f58 --- /dev/null +++ b/registry/schema-org/UserInteraction.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:UserInteraction", + "title": "UserInteraction", + "description": "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]].", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:Event" + } + ] +} diff --git a/registry/schema-org/UserLikes.schema.json b/registry/schema-org/UserLikes.schema.json new file mode 100644 index 0000000..5854731 --- /dev/null +++ b/registry/schema-org/UserLikes.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:UserLikes", + "title": "UserLikes", + "description": "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]].", + "type": "object", + "allOf": [ + { + "description": "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]].", + "$ref": "schema:UserInteraction" + } + ] +} diff --git a/registry/schema-org/UserPageVisits.schema.json b/registry/schema-org/UserPageVisits.schema.json new file mode 100644 index 0000000..af291b5 --- /dev/null +++ b/registry/schema-org/UserPageVisits.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:UserPageVisits", + "title": "UserPageVisits", + "description": "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]].", + "type": "object", + "allOf": [ + { + "description": "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]].", + "$ref": "schema:UserInteraction" + } + ] +} diff --git a/registry/schema-org/UserPlays.schema.json b/registry/schema-org/UserPlays.schema.json new file mode 100644 index 0000000..f408448 --- /dev/null +++ b/registry/schema-org/UserPlays.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:UserPlays", + "title": "UserPlays", + "description": "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]].", + "type": "object", + "allOf": [ + { + "description": "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]].", + "$ref": "schema:UserInteraction" + } + ] +} diff --git a/registry/schema-org/UserPlusOnes.schema.json b/registry/schema-org/UserPlusOnes.schema.json new file mode 100644 index 0000000..2591782 --- /dev/null +++ b/registry/schema-org/UserPlusOnes.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:UserPlusOnes", + "title": "UserPlusOnes", + "description": "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]].", + "type": "object", + "allOf": [ + { + "description": "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]].", + "$ref": "schema:UserInteraction" + } + ] +} diff --git a/registry/schema-org/UserReview.schema.json b/registry/schema-org/UserReview.schema.json new file mode 100644 index 0000000..3801bc1 --- /dev/null +++ b/registry/schema-org/UserReview.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:UserReview", + "title": "UserReview", + "description": "A review created by an end-user (e.g. consumer, purchaser, attendee etc.), in contrast with [[CriticReview]].", + "type": "object", + "allOf": [ + { + "description": "A review of an item - for example, of a restaurant, movie, or store.", + "$ref": "schema:Review" + } + ] +} diff --git a/registry/schema-org/UserTweets.schema.json b/registry/schema-org/UserTweets.schema.json new file mode 100644 index 0000000..f3f1f25 --- /dev/null +++ b/registry/schema-org/UserTweets.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:UserTweets", + "title": "UserTweets", + "description": "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]].", + "type": "object", + "allOf": [ + { + "description": "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]].", + "$ref": "schema:UserInteraction" + } + ] +} diff --git a/registry/schema-org/VacationRental.schema.json b/registry/schema-org/VacationRental.schema.json new file mode 100644 index 0000000..c639e73 --- /dev/null +++ b/registry/schema-org/VacationRental.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:VacationRental", + "title": "VacationRental", + "description": "A kind of lodging business that focuses on renting single properties for limited time.", + "type": "object", + "allOf": [ + { + "description": "A lodging business, such as a motel, hotel, or inn.", + "$ref": "schema:LodgingBusiness" + } + ] +} diff --git a/registry/schema-org/Vehicle.schema.json b/registry/schema-org/Vehicle.schema.json new file mode 100644 index 0000000..d094b3e --- /dev/null +++ b/registry/schema-org/Vehicle.schema.json @@ -0,0 +1,243 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Vehicle", + "title": "Vehicle", + "description": "A vehicle is a device that is designed or used to transport people or cargo over land, water, air, or through space.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:Product" + } + ], + "properties": { + "accelerationTime": { + "description": "The time needed to accelerate the vehicle from a given start velocity to a given target velocity.\\n\\nTypical unit code(s): SEC for seconds\\n\\n* 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.", + "$ref": "schema:QuantitativeValue" + }, + "bodyType": { + "description": "Indicates the design and body style of the vehicle (e.g. station wagon, hatchback, etc.).", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:QualitativeValue" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:QualitativeValue" } + ] + } + } + ] + }, + "callSign": { + "description": "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.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "cargoVolume": { + "description": "The available volume for cargo or luggage. For automobiles, this is usually the trunk volume.\\n\\nTypical unit code(s): LTR for liters, FTQ for cubic foot/feet\\n\\nNote: You can use [[minValue]] and [[maxValue]] to indicate ranges.", + "$ref": "schema:QuantitativeValue" + }, + "dateVehicleFirstRegistered": { + "description": "The date of the first registration of the vehicle with the respective public authorities.", + "type": "string", + "format": "date" + }, + "driveWheelConfiguration": { + "description": "The drive wheel configuration, i.e. which roadwheels will receive torque from the vehicle's engine via the drivetrain.", + "anyOf": [ + { "type": "string" }, + { "$ref": "schema:DriveWheelConfigurationValue" } + ] + }, + "emissionsCO2": { + "description": "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\".", + "type": "number" + }, + "fuelCapacity": { + "description": "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.\\n\\nTypical unit code(s): LTR for liters, GLL of US gallons, GLI for UK / imperial gallons, AMH for ampere-hours (for electrical vehicles).", + "$ref": "schema:QuantitativeValue" + }, + "fuelConsumption": { + "description": "The amount of fuel consumed for traveling a particular distance or temporal duration with the given vehicle (e.g. liters per 100 km).\\n\\n* 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.\\n* 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.\\n* 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.", + "$ref": "schema:QuantitativeValue" + }, + "fuelEfficiency": { + "description": "The distance traveled per unit of fuel used; most commonly miles per gallon (mpg) or kilometers per liter (km/L).\\n\\n* 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.\\n* 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.\\n* 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.", + "$ref": "schema:QuantitativeValue" + }, + "fuelType": { + "description": "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.", + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:QualitativeValue" } + ] + }, + "knownVehicleDamages": { + "description": "A textual description of known damages, both repaired and unrepaired.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "meetsEmissionStandard": { + "description": "Indicates that the vehicle meets the respective emission standard.", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:QualitativeValue" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:QualitativeValue" } + ] + } + } + ] + }, + "mileageFromOdometer": { + "description": "The total distance travelled by the particular vehicle since its initial production, as read from its odometer.\\n\\nTypical unit code(s): KMT for kilometers, SMI for statute miles.", + "$ref": "schema:QuantitativeValue" + }, + "modelDate": { + "description": "The release date of a vehicle model (often used to differentiate versions of the same make and model).", + "type": "string", + "format": "date" + }, + "numberOfAirbags": { + "description": "The number or type of airbags in the vehicle.", + "anyOf": [{ "type": "number" }, { "type": "string" }] + }, + "numberOfAxles": { + "description": "The number of axles.\\n\\nTypical unit code(s): C62.", + "anyOf": [{ "type": "number" }, { "$ref": "schema:QuantitativeValue" }] + }, + "numberOfDoors": { + "description": "The number of doors.\\n\\nTypical unit code(s): C62.", + "anyOf": [{ "type": "number" }, { "$ref": "schema:QuantitativeValue" }] + }, + "numberOfForwardGears": { + "description": "The total number of forward gears available for the transmission system of the vehicle.\\n\\nTypical unit code(s): C62.", + "anyOf": [{ "type": "number" }, { "$ref": "schema:QuantitativeValue" }] + }, + "numberOfPreviousOwners": { + "description": "The number of owners of the vehicle, including the current one.\\n\\nTypical unit code(s): C62.", + "anyOf": [{ "type": "number" }, { "$ref": "schema:QuantitativeValue" }] + }, + "payload": { + "description": "The permitted weight of passengers and cargo, EXCLUDING the weight of the empty vehicle.\\n\\nTypical unit code(s): KGM for kilogram, LBR for pound\\n\\n* Note 1: Many databases specify the permitted TOTAL weight instead, which is the sum of [[weight]] and [[payload]]\\n* Note 2: You can indicate additional information in the [[name]] of the [[QuantitativeValue]] node.\\n* Note 3: You may also link to a [[QualitativeValue]] node that provides additional information using [[valueReference]].\\n* Note 4: Note that you can use [[minValue]] and [[maxValue]] to indicate ranges.", + "$ref": "schema:QuantitativeValue" + }, + "productionDate": { + "description": "The date of production of the item, e.g. vehicle.", + "type": "string", + "format": "date" + }, + "purchaseDate": { + "description": "The date the item, e.g. vehicle, was purchased by the current owner.", + "type": "string", + "format": "date" + }, + "seatingCapacity": { + "description": "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.\\n\\nTypical unit code(s): C62 for persons.", + "anyOf": [{ "type": "number" }, { "$ref": "schema:QuantitativeValue" }] + }, + "speed": { + "description": "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.\\n\\nTypical unit code(s): KMH for km/h, HM for mile per hour (0.447 04 m/s), KNT for knot\\n\\n*Note 1: Use [[minValue]] and [[maxValue]] to indicate the range. Typically, the minimal value is zero.\\n* 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.", + "$ref": "schema:QuantitativeValue" + }, + "steeringPosition": { + "description": "The position of the steering wheel or similar device (mostly for cars).", + "$ref": "schema:SteeringPositionValue" + }, + "tongueWeight": { + "description": "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).\\n\\nTypical unit code(s): KGM for kilogram, LBR for pound\\n\\n* Note 1: You can indicate additional information in the [[name]] of the [[QuantitativeValue]] node.\\n* Note 2: You may also link to a [[QualitativeValue]] node that provides additional information using [[valueReference]].\\n* Note 3: Note that you can use [[minValue]] and [[maxValue]] to indicate ranges.", + "$ref": "schema:QuantitativeValue" + }, + "trailerWeight": { + "description": "The permitted weight of a trailer attached to the vehicle.\\n\\nTypical unit code(s): KGM for kilogram, LBR for pound\\n* Note 1: You can indicate additional information in the [[name]] of the [[QuantitativeValue]] node.\\n* Note 2: You may also link to a [[QualitativeValue]] node that provides additional information using [[valueReference]].\\n* Note 3: Note that you can use [[minValue]] and [[maxValue]] to indicate ranges.", + "$ref": "schema:QuantitativeValue" + }, + "vehicleConfiguration": { + "description": "A short text indicating the configuration of the vehicle, e.g. '5dr hatchback ST 2.5 MT 225 hp' or 'limited edition'.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "vehicleEngine": { + "description": "Information about the engine or engines of the vehicle.", + "oneOf": [ + { "$ref": "schema:EngineSpecification" }, + { "type": "array", "items": { "$ref": "schema:EngineSpecification" } } + ] + }, + "vehicleIdentificationNumber": { + "description": "The Vehicle Identification Number (VIN) is a unique serial number used by the automotive industry to identify individual motor vehicles.", + "type": "string" + }, + "vehicleInteriorColor": { + "description": "The color or color combination of the interior of the vehicle.", + "type": "string" + }, + "vehicleInteriorType": { + "description": "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.", + "type": "string" + }, + "vehicleModelDate": { + "description": "The release date of a vehicle model (often used to differentiate versions of the same make and model).", + "type": "string", + "format": "date" + }, + "vehicleSeatingCapacity": { + "description": "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.\\n\\nTypical unit code(s): C62 for persons.", + "anyOf": [{ "type": "number" }, { "$ref": "schema:QuantitativeValue" }] + }, + "vehicleSpecialUsage": { + "description": "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.", + "oneOf": [ + { "anyOf": [{ "type": "string" }, { "$ref": "schema:CarUsageType" }] }, + { + "type": "array", + "items": { + "anyOf": [{ "type": "string" }, { "$ref": "schema:CarUsageType" }] + } + } + ] + }, + "vehicleTransmission": { + "description": "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).", + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:QualitativeValue" } + ] + }, + "weightTotal": { + "description": "The permitted total weight of the loaded vehicle, including passengers and cargo and the weight of the empty vehicle.\\n\\nTypical unit code(s): KGM for kilogram, LBR for pound\\n\\n* Note 1: You can indicate additional information in the [[name]] of the [[QuantitativeValue]] node.\\n* Note 2: You may also link to a [[QualitativeValue]] node that provides additional information using [[valueReference]].\\n* Note 3: Note that you can use [[minValue]] and [[maxValue]] to indicate ranges.", + "$ref": "schema:QuantitativeValue" + }, + "wheelbase": { + "description": "The distance between the centers of the front and rear wheels.\\n\\nTypical unit code(s): CMT for centimeters, MTR for meters, INH for inches, FOT for foot/feet.", + "$ref": "schema:QuantitativeValue" + } + } +} diff --git a/registry/schema-org/Vein.schema.json b/registry/schema-org/Vein.schema.json new file mode 100644 index 0000000..3f71e22 --- /dev/null +++ b/registry/schema-org/Vein.schema.json @@ -0,0 +1,30 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Vein", + "title": "Vein", + "description": "A type of blood vessel that specifically carries blood to the heart.", + "type": "object", + "allOf": [ + { + "description": "A component of the human body circulatory system comprised of an intricate network of hollow tubes that transport blood throughout the entire body.", + "$ref": "schema:Vessel" + } + ], + "properties": { + "drainsTo": { + "description": "The vasculature that the vein drains into.", + "$ref": "schema:Vessel" + }, + "regionDrained": { + "description": "The anatomical or organ system drained by this vessel; generally refers to a specific part of an organ.", + "anyOf": [ + { "$ref": "schema:AnatomicalStructure" }, + { "$ref": "schema:AnatomicalSystem" } + ] + }, + "tributary": { + "description": "The anatomical or organ system that the vein flows into; a larger structure that the vein connects to.", + "$ref": "schema:AnatomicalStructure" + } + } +} diff --git a/registry/schema-org/Vessel.schema.json b/registry/schema-org/Vessel.schema.json new file mode 100644 index 0000000..46519eb --- /dev/null +++ b/registry/schema-org/Vessel.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Vessel", + "title": "Vessel", + "description": "A component of the human body circulatory system comprised of an intricate network of hollow tubes that transport blood throughout the entire body.", + "type": "object", + "allOf": [ + { + "description": "Any part of the human body, typically a component of an anatomical system. Organs, tissues, and cells are all anatomical structures.", + "$ref": "schema:AnatomicalStructure" + } + ] +} diff --git a/registry/schema-org/VeterinaryCare.schema.json b/registry/schema-org/VeterinaryCare.schema.json new file mode 100644 index 0000000..2499407 --- /dev/null +++ b/registry/schema-org/VeterinaryCare.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:VeterinaryCare", + "title": "VeterinaryCare", + "description": "A vet's office.", + "type": "object", + "allOf": [ + { + "description": "A medical organization (physical or not), such as hospital, institution or clinic.", + "$ref": "schema:MedicalOrganization" + } + ] +} diff --git a/registry/schema-org/VideoGallery.schema.json b/registry/schema-org/VideoGallery.schema.json new file mode 100644 index 0000000..699c0b8 --- /dev/null +++ b/registry/schema-org/VideoGallery.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:VideoGallery", + "title": "VideoGallery", + "description": "Web page type: Video gallery page.", + "type": "object", + "allOf": [ + { + "description": "Web page type: Media gallery page. A mixed-media page that can contain media such as images, videos, and other multimedia.", + "$ref": "schema:MediaGallery" + } + ] +} diff --git a/registry/schema-org/VideoGame.schema.json b/registry/schema-org/VideoGame.schema.json new file mode 100644 index 0000000..bc3471c --- /dev/null +++ b/registry/schema-org/VideoGame.schema.json @@ -0,0 +1,102 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:VideoGame", + "title": "VideoGame", + "description": "A video game is an electronic game that involves human interaction with a user interface to generate visual feedback on a video device.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:Game" + }, + { + "description": "A software application.", + "$ref": "schema:SoftwareApplication" + } + ], + "properties": { + "actor": { + "description": "An actor (individual or a group), 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.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:PerformingGroup" }, + { "$ref": "schema:Person" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:PerformingGroup" }, + { "$ref": "schema:Person" } + ] + } + } + ] + }, + "actors": { + "description": "An actor, e.g. in TV, radio, movie, video games etc. Actors can be associated with individual items or with a series, episode, clip.", + "oneOf": [ + { "$ref": "schema:Person" }, + { "type": "array", "items": { "$ref": "schema:Person" } } + ] + }, + "cheatCode": { + "description": "Cheat codes to the game.", + "oneOf": [ + { "$ref": "schema:CreativeWork" }, + { "type": "array", "items": { "$ref": "schema:CreativeWork" } } + ] + }, + "director": { + "description": "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.", + "$ref": "schema:Person" + }, + "directors": { + "description": "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.", + "oneOf": [ + { "$ref": "schema:Person" }, + { "type": "array", "items": { "$ref": "schema:Person" } } + ] + }, + "gameEdition": { + "description": "The edition of a video game.", + "type": "string" + }, + "gamePlatform": { + "description": "The electronic systems used to play video games.", + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:Thing" } + ] + }, + "gameServer": { + "description": "The server on which it is possible to play the game.", + "$ref": "schema:GameServer" + }, + "gameTip": { + "description": "Links to tips, tactics, etc.", + "oneOf": [ + { "$ref": "schema:CreativeWork" }, + { "type": "array", "items": { "$ref": "schema:CreativeWork" } } + ] + }, + "musicBy": { + "description": "The composer of the soundtrack.", + "anyOf": [{ "$ref": "schema:MusicGroup" }, { "$ref": "schema:Person" }] + }, + "playMode": { + "description": "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.", + "oneOf": [ + { "$ref": "schema:GamePlayMode" }, + { "type": "array", "items": { "$ref": "schema:GamePlayMode" } } + ] + }, + "trailer": { + "description": "The trailer of a movie or TV/radio series, season, episode, etc.", + "$ref": "schema:VideoObject" + } + } +} diff --git a/registry/schema-org/VideoGameClip.schema.json b/registry/schema-org/VideoGameClip.schema.json new file mode 100644 index 0000000..b2de161 --- /dev/null +++ b/registry/schema-org/VideoGameClip.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:VideoGameClip", + "title": "VideoGameClip", + "description": "A short segment/part of a video game.", + "type": "object", + "allOf": [ + { + "description": "A short TV or radio program or a segment/part of a program.", + "$ref": "schema:Clip" + } + ] +} diff --git a/registry/schema-org/VideoGameSeries.schema.json b/registry/schema-org/VideoGameSeries.schema.json new file mode 100644 index 0000000..0ed278c --- /dev/null +++ b/registry/schema-org/VideoGameSeries.schema.json @@ -0,0 +1,190 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:VideoGameSeries", + "title": "VideoGameSeries", + "description": "A video game series.", + "type": "object", + "allOf": [ + { + "description": "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 ", + "$ref": "schema:CreativeWorkSeries" + } + ], + "properties": { + "actor": { + "description": "An actor (individual or a group), 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.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:PerformingGroup" }, + { "$ref": "schema:Person" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:PerformingGroup" }, + { "$ref": "schema:Person" } + ] + } + } + ] + }, + "actors": { + "description": "An actor, e.g. in TV, radio, movie, video games etc. Actors can be associated with individual items or with a series, episode, clip.", + "oneOf": [ + { "$ref": "schema:Person" }, + { "type": "array", "items": { "$ref": "schema:Person" } } + ] + }, + "characterAttribute": { + "description": "A piece of data that represents a particular aspect of a fictional character (skill, power, character points, advantage, disadvantage).", + "oneOf": [ + { "$ref": "schema:Thing" }, + { "type": "array", "items": { "$ref": "schema:Thing" } } + ] + }, + "cheatCode": { + "description": "Cheat codes to the game.", + "oneOf": [ + { "$ref": "schema:CreativeWork" }, + { "type": "array", "items": { "$ref": "schema:CreativeWork" } } + ] + }, + "containsSeason": { + "description": "A season that is part of the media series.", + "oneOf": [ + { "$ref": "schema:CreativeWorkSeason" }, + { "type": "array", "items": { "$ref": "schema:CreativeWorkSeason" } } + ] + }, + "director": { + "description": "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.", + "$ref": "schema:Person" + }, + "directors": { + "description": "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.", + "oneOf": [ + { "$ref": "schema:Person" }, + { "type": "array", "items": { "$ref": "schema:Person" } } + ] + }, + "episode": { + "description": "An episode of a TV, radio or game media within a series or season.", + "oneOf": [ + { "$ref": "schema:Episode" }, + { "type": "array", "items": { "$ref": "schema:Episode" } } + ] + }, + "episodes": { + "description": "An episode of a TV/radio series or season.", + "oneOf": [ + { "$ref": "schema:Episode" }, + { "type": "array", "items": { "$ref": "schema:Episode" } } + ] + }, + "gameItem": { + "description": "An item is an object within the game world that can be collected by a player or, occasionally, a non-player character.", + "oneOf": [ + { "$ref": "schema:Thing" }, + { "type": "array", "items": { "$ref": "schema:Thing" } } + ] + }, + "gameLocation": { + "description": "Real or fictional location of the game (or part of game).", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:Place" }, + { "$ref": "schema:PostalAddress" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:Place" }, + { "$ref": "schema:PostalAddress" } + ] + } + } + ] + }, + "gamePlatform": { + "description": "The electronic systems used to play video games.", + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" }, + { "$ref": "schema:Thing" } + ] + }, + "musicBy": { + "description": "The composer of the soundtrack.", + "anyOf": [{ "$ref": "schema:MusicGroup" }, { "$ref": "schema:Person" }] + }, + "numberOfEpisodes": { + "description": "The number of episodes in this season or series.", + "type": "integer" + }, + "numberOfPlayers": { + "description": "Indicate how many people can play this game (minimum, maximum, or range).", + "oneOf": [ + { "$ref": "schema:QuantitativeValue" }, + { "type": "array", "items": { "$ref": "schema:QuantitativeValue" } } + ] + }, + "numberOfSeasons": { + "description": "The number of seasons in this series.", + "type": "integer" + }, + "playMode": { + "description": "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.", + "oneOf": [ + { "$ref": "schema:GamePlayMode" }, + { "type": "array", "items": { "$ref": "schema:GamePlayMode" } } + ] + }, + "productionCompany": { + "description": "The production company or studio responsible for the item, e.g. series, video game, episode etc.", + "$ref": "schema:Organization" + }, + "quest": { + "description": "The task that a player-controlled character, or group of characters may complete in order to gain a reward.", + "$ref": "schema:Thing" + }, + "season": { + "description": "A season in a media series.", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:CreativeWorkSeason" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:CreativeWorkSeason" } + ] + } + } + ] + }, + "seasons": { + "description": "A season in a media series.", + "oneOf": [ + { "$ref": "schema:CreativeWorkSeason" }, + { "type": "array", "items": { "$ref": "schema:CreativeWorkSeason" } } + ] + }, + "trailer": { + "description": "The trailer of a movie or TV/radio series, season, episode, etc.", + "$ref": "schema:VideoObject" + } + } +} diff --git a/registry/schema-org/VideoObject.schema.json b/registry/schema-org/VideoObject.schema.json new file mode 100644 index 0000000..2289045 --- /dev/null +++ b/registry/schema-org/VideoObject.schema.json @@ -0,0 +1,80 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:VideoObject", + "title": "VideoObject", + "description": "A video file.", + "type": "object", + "allOf": [ + { + "description": "A media object, such as an image, video, audio, or text 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).", + "$ref": "schema:MediaObject" + } + ], + "properties": { + "actor": { + "description": "An actor (individual or a group), 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.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:PerformingGroup" }, + { "$ref": "schema:Person" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:PerformingGroup" }, + { "$ref": "schema:Person" } + ] + } + } + ] + }, + "actors": { + "description": "An actor, e.g. in TV, radio, movie, video games etc. Actors can be associated with individual items or with a series, episode, clip.", + "oneOf": [ + { "$ref": "schema:Person" }, + { "type": "array", "items": { "$ref": "schema:Person" } } + ] + }, + "caption": { + "description": "The caption for this object. For downloadable machine formats (closed caption, subtitles etc.) use MediaObject and indicate the [[encodingFormat]].", + "anyOf": [{ "type": "string" }, { "$ref": "schema:MediaObject" }] + }, + "director": { + "description": "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.", + "$ref": "schema:Person" + }, + "directors": { + "description": "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.", + "oneOf": [ + { "$ref": "schema:Person" }, + { "type": "array", "items": { "$ref": "schema:Person" } } + ] + }, + "embeddedTextCaption": { + "description": "Represents textual captioning from a [[MediaObject]], e.g. text of a 'meme'.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "musicBy": { + "description": "The composer of the soundtrack.", + "anyOf": [{ "$ref": "schema:MusicGroup" }, { "$ref": "schema:Person" }] + }, + "transcript": { + "description": "If this MediaObject is an AudioObject or VideoObject, the transcript of that object.", + "type": "string" + }, + "videoFrameSize": { + "description": "The frame size of the video.", + "type": "string" + }, + "videoQuality": { + "description": "The quality of the video.", + "type": "string" + } + } +} diff --git a/registry/schema-org/VideoObjectSnapshot.schema.json b/registry/schema-org/VideoObjectSnapshot.schema.json new file mode 100644 index 0000000..f68ce9f --- /dev/null +++ b/registry/schema-org/VideoObjectSnapshot.schema.json @@ -0,0 +1,8 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:VideoObjectSnapshot", + "title": "VideoObjectSnapshot", + "description": "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.", + "type": "object", + "allOf": [{ "description": "A video file.", "$ref": "schema:VideoObject" }] +} diff --git a/registry/schema-org/ViewAction.schema.json b/registry/schema-org/ViewAction.schema.json new file mode 100644 index 0000000..dcdd2a6 --- /dev/null +++ b/registry/schema-org/ViewAction.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:ViewAction", + "title": "ViewAction", + "description": "The act of consuming static visual content.", + "type": "object", + "allOf": [ + { + "description": "The act of ingesting information/resources/food.", + "$ref": "schema:ConsumeAction" + } + ] +} diff --git a/registry/schema-org/VirtualLocation.schema.json b/registry/schema-org/VirtualLocation.schema.json new file mode 100644 index 0000000..32a6969 --- /dev/null +++ b/registry/schema-org/VirtualLocation.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:VirtualLocation", + "title": "VirtualLocation", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "A utility class that serves as the umbrella for a number of 'intangible' things such as quantities, structured values, etc.", + "$ref": "schema:Intangible" + } + ] +} diff --git a/registry/schema-org/VisualArtsEvent.schema.json b/registry/schema-org/VisualArtsEvent.schema.json new file mode 100644 index 0000000..6f5f626 --- /dev/null +++ b/registry/schema-org/VisualArtsEvent.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:VisualArtsEvent", + "title": "VisualArtsEvent", + "description": "Event type: Visual arts event.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:Event" + } + ] +} diff --git a/registry/schema-org/VisualArtwork.schema.json b/registry/schema-org/VisualArtwork.schema.json new file mode 100644 index 0000000..da92ff0 --- /dev/null +++ b/registry/schema-org/VisualArtwork.schema.json @@ -0,0 +1,109 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:VisualArtwork", + "title": "VisualArtwork", + "description": "A work of art that is primarily visual in character.", + "type": "object", + "allOf": [ + { + "description": "The most generic kind of creative work, including books, movies, photographs, software programs, etc.", + "$ref": "schema:CreativeWork" + } + ], + "properties": { + "artEdition": { + "description": "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\").", + "anyOf": [{ "type": "integer" }, { "type": "string" }] + }, + "artMedium": { + "description": "The material used. (E.g. Oil, Watercolour, Acrylic, Linoprint, Marble, Cyanotype, Digital, Lithograph, DryPoint, Intaglio, Pastel, Woodcut, Pencil, Mixed Media, etc.)", + "anyOf": [{ "type": "string", "format": "uri" }, { "type": "string" }] + }, + "artform": { + "description": "e.g. Painting, Drawing, Sculpture, Print, Photograph, Assemblage, Collage, etc.", + "oneOf": [ + { + "anyOf": [{ "type": "string", "format": "uri" }, { "type": "string" }] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" } + ] + } + } + ] + }, + "artist": { + "description": "The primary artist for a work\n \tin a medium other than pencils or digital line art--for example, if the\n \tprimary artwork is done in watercolors or digital paints.", + "$ref": "schema:Person" + }, + "artworkSurface": { + "description": "The supporting materials for the artwork, e.g. Canvas, Paper, Wood, Board, etc.", + "anyOf": [{ "type": "string", "format": "uri" }, { "type": "string" }] + }, + "colorist": { + "description": "The individual who adds color to inked drawings.", + "$ref": "schema:Person" + }, + "depth": { + "description": "The depth of the item.", + "anyOf": [ + { "type": "string", "$comment": "https://schema.org/Distance" }, + { "$ref": "schema:QuantitativeValue" } + ] + }, + "height": { + "description": "The height of the item.", + "anyOf": [ + { "type": "string", "$comment": "https://schema.org/Distance" }, + { "$ref": "schema:QuantitativeValue" } + ] + }, + "inker": { + "description": "The individual who traces over the pencil drawings in ink after pencils are complete.", + "$ref": "schema:Person" + }, + "letterer": { + "description": "The individual who adds lettering, including speech balloons and sound effects, to artwork.", + "$ref": "schema:Person" + }, + "penciler": { + "description": "The individual who draws the primary narrative artwork.", + "$ref": "schema:Person" + }, + "surface": { + "description": "A material used as a surface in some artwork, e.g. Canvas, Paper, Wood, Board, etc.", + "oneOf": [ + { + "anyOf": [{ "type": "string", "format": "uri" }, { "type": "string" }] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "type": "string" } + ] + } + } + ] + }, + "weight": { + "description": "The weight of the product or person.", + "anyOf": [ + { "type": "string", "$comment": "https://schema.org/Mass" }, + { "$ref": "schema:QuantitativeValue" } + ] + }, + "width": { + "description": "The width of the item.", + "anyOf": [ + { "type": "string", "$comment": "https://schema.org/Distance" }, + { "$ref": "schema:QuantitativeValue" } + ] + } + } +} diff --git a/registry/schema-org/VitalSign.schema.json b/registry/schema-org/VitalSign.schema.json new file mode 100644 index 0000000..74e943e --- /dev/null +++ b/registry/schema-org/VitalSign.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:VitalSign", + "title": "VitalSign", + "description": "Vital signs are measures of various physiological functions in order to assess the most basic body functions.", + "type": "object", + "allOf": [ + { + "description": "Any physical manifestation of a person's medical condition discoverable by objective diagnostic tests or physical examination.", + "$ref": "schema:MedicalSign" + } + ] +} diff --git a/registry/schema-org/Volcano.schema.json b/registry/schema-org/Volcano.schema.json new file mode 100644 index 0000000..0aec66a --- /dev/null +++ b/registry/schema-org/Volcano.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Volcano", + "title": "Volcano", + "description": "A volcano, like Fujisan.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:Landform" + } + ] +} diff --git a/registry/schema-org/VoteAction.schema.json b/registry/schema-org/VoteAction.schema.json new file mode 100644 index 0000000..38d4860 --- /dev/null +++ b/registry/schema-org/VoteAction.schema.json @@ -0,0 +1,22 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:VoteAction", + "title": "VoteAction", + "description": "The act of expressing a preference from a fixed/finite/structured set of choices/options.", + "type": "object", + "allOf": [ + { + "description": "The act of expressing a preference from a set of options or a large or unbounded set of choices/options.", + "$ref": "schema:ChooseAction" + } + ], + "properties": { + "candidate": { + "description": "A sub property of object. The candidate subject of this action.", + "oneOf": [ + { "$ref": "schema:Person" }, + { "type": "array", "items": { "$ref": "schema:Person" } } + ] + } + } +} diff --git a/registry/schema-org/WPAdBlock.schema.json b/registry/schema-org/WPAdBlock.schema.json new file mode 100644 index 0000000..a641337 --- /dev/null +++ b/registry/schema-org/WPAdBlock.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:WPAdBlock", + "title": "WPAdBlock", + "description": "An advertising section of the page.", + "type": "object", + "allOf": [ + { + "description": "A web page element, like a table or an image.", + "$ref": "schema:WebPageElement" + } + ] +} diff --git a/registry/schema-org/WPFooter.schema.json b/registry/schema-org/WPFooter.schema.json new file mode 100644 index 0000000..b52a291 --- /dev/null +++ b/registry/schema-org/WPFooter.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:WPFooter", + "title": "WPFooter", + "description": "The footer section of the page.", + "type": "object", + "allOf": [ + { + "description": "A web page element, like a table or an image.", + "$ref": "schema:WebPageElement" + } + ] +} diff --git a/registry/schema-org/WPHeader.schema.json b/registry/schema-org/WPHeader.schema.json new file mode 100644 index 0000000..abc5328 --- /dev/null +++ b/registry/schema-org/WPHeader.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:WPHeader", + "title": "WPHeader", + "description": "The header section of the page.", + "type": "object", + "allOf": [ + { + "description": "A web page element, like a table or an image.", + "$ref": "schema:WebPageElement" + } + ] +} diff --git a/registry/schema-org/WPSideBar.schema.json b/registry/schema-org/WPSideBar.schema.json new file mode 100644 index 0000000..4698e5d --- /dev/null +++ b/registry/schema-org/WPSideBar.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:WPSideBar", + "title": "WPSideBar", + "description": "A sidebar section of the page.", + "type": "object", + "allOf": [ + { + "description": "A web page element, like a table or an image.", + "$ref": "schema:WebPageElement" + } + ] +} diff --git a/registry/schema-org/WantAction.schema.json b/registry/schema-org/WantAction.schema.json new file mode 100644 index 0000000..95acac8 --- /dev/null +++ b/registry/schema-org/WantAction.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:WantAction", + "title": "WantAction", + "description": "The act of expressing a desire about the object. An agent wants an object.", + "type": "object", + "allOf": [ + { + "description": "The act of responding instinctively and emotionally to an object, expressing a sentiment.", + "$ref": "schema:ReactAction" + } + ] +} diff --git a/registry/schema-org/WarrantyPromise.schema.json b/registry/schema-org/WarrantyPromise.schema.json new file mode 100644 index 0000000..ab75eb0 --- /dev/null +++ b/registry/schema-org/WarrantyPromise.schema.json @@ -0,0 +1,23 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:WarrantyPromise", + "title": "WarrantyPromise", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "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.", + "$ref": "schema:StructuredValue" + } + ], + "properties": { + "durationOfWarranty": { + "description": "The duration of the warranty promise. Common unitCode values are ANN for year, MON for months, or DAY for days.", + "$ref": "schema:QuantitativeValue" + }, + "warrantyScope": { + "description": "The scope of the warranty promise.", + "$ref": "schema:WarrantyScope" + } + } +} diff --git a/registry/schema-org/WarrantyScope.schema.json b/registry/schema-org/WarrantyScope.schema.json new file mode 100644 index 0000000..0812870 --- /dev/null +++ b/registry/schema-org/WarrantyScope.schema.json @@ -0,0 +1,7 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:WarrantyScope", + "title": "WarrantyScope", + "description": "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 ", + "type": "object" +} diff --git a/registry/schema-org/WatchAction.schema.json b/registry/schema-org/WatchAction.schema.json new file mode 100644 index 0000000..9eacc80 --- /dev/null +++ b/registry/schema-org/WatchAction.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:WatchAction", + "title": "WatchAction", + "description": "The act of consuming dynamic/moving visual content.", + "type": "object", + "allOf": [ + { + "description": "The act of ingesting information/resources/food.", + "$ref": "schema:ConsumeAction" + } + ] +} diff --git a/registry/schema-org/Waterfall.schema.json b/registry/schema-org/Waterfall.schema.json new file mode 100644 index 0000000..b9b00df --- /dev/null +++ b/registry/schema-org/Waterfall.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Waterfall", + "title": "Waterfall", + "description": "A waterfall, like Niagara.", + "type": "object", + "allOf": [ + { + "description": "A body of water, such as a sea, ocean, or lake.", + "$ref": "schema:BodyOfWater" + } + ] +} diff --git a/registry/schema-org/WearAction.schema.json b/registry/schema-org/WearAction.schema.json new file mode 100644 index 0000000..a3c14f7 --- /dev/null +++ b/registry/schema-org/WearAction.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:WearAction", + "title": "WearAction", + "description": "The act of dressing oneself in clothing.", + "type": "object", + "allOf": [ + { + "description": "The act of applying an object to its intended purpose.", + "$ref": "schema:UseAction" + } + ] +} diff --git a/registry/schema-org/WearableMeasurementTypeEnumeration.schema.json b/registry/schema-org/WearableMeasurementTypeEnumeration.schema.json new file mode 100644 index 0000000..1b92150 --- /dev/null +++ b/registry/schema-org/WearableMeasurementTypeEnumeration.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:WearableMeasurementTypeEnumeration", + "title": "WearableMeasurementTypeEnumeration", + "description": "Enumerates common types of measurement for wearables products.", + "type": "object", + "allOf": [ + { + "description": "Enumeration of common measurement types (or dimensions), for example \"chest\" for a person, \"inseam\" for pants, \"gauge\" for screws, or \"wheel\" for bicycles.", + "$ref": "schema:MeasurementTypeEnumeration" + } + ] +} diff --git a/registry/schema-org/WearableSizeGroupEnumeration.schema.json b/registry/schema-org/WearableSizeGroupEnumeration.schema.json new file mode 100644 index 0000000..4e474a1 --- /dev/null +++ b/registry/schema-org/WearableSizeGroupEnumeration.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:WearableSizeGroupEnumeration", + "title": "WearableSizeGroupEnumeration", + "description": "Enumerates common size groups (also known as \"size types\") for wearable products.", + "type": "object", + "allOf": [ + { + "description": "Enumerates common size groups for various product categories.", + "$ref": "schema:SizeGroupEnumeration" + } + ] +} diff --git a/registry/schema-org/WearableSizeSystemEnumeration.schema.json b/registry/schema-org/WearableSizeSystemEnumeration.schema.json new file mode 100644 index 0000000..232a1cb --- /dev/null +++ b/registry/schema-org/WearableSizeSystemEnumeration.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:WearableSizeSystemEnumeration", + "title": "WearableSizeSystemEnumeration", + "description": "Enumerates common size systems specific for wearable products.", + "type": "object", + "allOf": [ + { + "description": "Enumerates common size systems for different categories of products, for example \"EN-13402\" or \"UK\" for wearables or \"Imperial\" for screws.", + "$ref": "schema:SizeSystemEnumeration" + } + ] +} diff --git a/registry/schema-org/WebAPI.schema.json b/registry/schema-org/WebAPI.schema.json new file mode 100644 index 0000000..73ea04e --- /dev/null +++ b/registry/schema-org/WebAPI.schema.json @@ -0,0 +1,35 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:WebAPI", + "title": "WebAPI", + "description": "An application programming interface accessible over Web/Internet technologies.", + "type": "object", + "allOf": [ + { + "description": "A service provided by an organization, e.g. delivery service, print services, etc.", + "$ref": "schema:Service" + } + ], + "properties": { + "documentation": { + "description": "Further documentation describing the Web API in more detail.", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:CreativeWork" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:CreativeWork" } + ] + } + } + ] + } + } +} diff --git a/registry/schema-org/WebApplication.schema.json b/registry/schema-org/WebApplication.schema.json new file mode 100644 index 0000000..d8ea431 --- /dev/null +++ b/registry/schema-org/WebApplication.schema.json @@ -0,0 +1,19 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:WebApplication", + "title": "WebApplication", + "description": "Web applications.", + "type": "object", + "allOf": [ + { + "description": "A software application.", + "$ref": "schema:SoftwareApplication" + } + ], + "properties": { + "browserRequirements": { + "description": "Specifies browser requirements in human-readable text. For example, 'requires HTML5 support'.", + "type": "string" + } + } +} diff --git a/registry/schema-org/WebContent.schema.json b/registry/schema-org/WebContent.schema.json new file mode 100644 index 0000000..704ac95 --- /dev/null +++ b/registry/schema-org/WebContent.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:WebContent", + "title": "WebContent", + "description": "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]].)", + "type": "object", + "allOf": [ + { + "description": "The most generic kind of creative work, including books, movies, photographs, software programs, etc.", + "$ref": "schema:CreativeWork" + } + ] +} diff --git a/registry/schema-org/WebPage.schema.json b/registry/schema-org/WebPage.schema.json new file mode 100644 index 0000000..949e38d --- /dev/null +++ b/registry/schema-org/WebPage.schema.json @@ -0,0 +1,108 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:WebPage", + "title": "WebPage", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "The most generic kind of creative work, including books, movies, photographs, software programs, etc.", + "$ref": "schema:CreativeWork" + } + ], + "properties": { + "breadcrumb": { + "description": "A set of links that can help a user understand and navigate a website hierarchy.", + "oneOf": [ + { + "anyOf": [{ "type": "string" }, { "$ref": "schema:BreadcrumbList" }] + }, + { + "type": "array", + "items": { + "anyOf": [{ "type": "string" }, { "$ref": "schema:BreadcrumbList" }] + } + } + ] + }, + "lastReviewed": { + "description": "Date on which the content on this web page was last reviewed for accuracy and/or completeness.", + "type": "string", + "format": "date" + }, + "mainContentOfPage": { + "description": "Indicates if this web page element is the main subject of the page.", + "$ref": "schema:WebPageElement" + }, + "primaryImageOfPage": { + "description": "Indicates the main image on the page.", + "$ref": "schema:ImageObject" + }, + "relatedLink": { + "description": "A link related to this web page, for example to other related web pages.", + "oneOf": [ + { "type": "string", "format": "uri" }, + { "type": "array", "items": { "type": "string", "format": "uri" } } + ] + }, + "reviewedBy": { + "description": "People or organizations that have reviewed the content on this web page for accuracy and/or completeness.", + "oneOf": [ + { + "anyOf": [ + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "$ref": "schema:Organization" }, + { "$ref": "schema:Person" } + ] + } + } + ] + }, + "significantLink": { + "description": "One of the more significant URLs on the page. Typically, these are the non-navigation links that are clicked on the most.", + "oneOf": [ + { "type": "string", "format": "uri" }, + { "type": "array", "items": { "type": "string", "format": "uri" } } + ] + }, + "significantLinks": { + "description": "The most significant URLs on the page. Typically, these are the non-navigation links that are clicked on the most.", + "type": "string", + "format": "uri" + }, + "speakable": { + "description": "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.\n\nThe *speakable* property can be repeated an arbitrary number of times, with three kinds of possible 'content-locator' values:\n\n1.) *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.\n\n2.) CSS Selectors - addresses content in the annotated page, e.g. via class attribute. Use the [[cssSelector]] property.\n\n3.) XPaths - addresses content via XPaths (assuming an XML view of the content). Use the [[xpath]] property.\n\n\nFor 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\nwe define a supporting type, [[SpeakableSpecification]] which is defined to be a possible value of the *speakable* property.\n ", + "oneOf": [ + { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:SpeakableSpecification" } + ] + }, + { + "type": "array", + "items": { + "anyOf": [ + { "type": "string", "format": "uri" }, + { "$ref": "schema:SpeakableSpecification" } + ] + } + } + ] + }, + "specialty": { + "description": "One of the domain specialities to which this web page's content applies.", + "oneOf": [ + { "$ref": "schema:Specialty" }, + { "type": "array", "items": { "$ref": "schema:Specialty" } } + ] + } + } +} diff --git a/registry/schema-org/WebPageElement.schema.json b/registry/schema-org/WebPageElement.schema.json new file mode 100644 index 0000000..552a3e0 --- /dev/null +++ b/registry/schema-org/WebPageElement.schema.json @@ -0,0 +1,23 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:WebPageElement", + "title": "WebPageElement", + "description": "A web page element, like a table or an image.", + "type": "object", + "allOf": [ + { + "description": "The most generic kind of creative work, including books, movies, photographs, software programs, etc.", + "$ref": "schema:CreativeWork" + } + ], + "properties": { + "cssSelector": { + "description": "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\".", + "type": "string" + }, + "xpath": { + "description": "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\".", + "type": "string" + } + } +} diff --git a/registry/schema-org/WebSite.schema.json b/registry/schema-org/WebSite.schema.json new file mode 100644 index 0000000..895efb0 --- /dev/null +++ b/registry/schema-org/WebSite.schema.json @@ -0,0 +1,19 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:WebSite", + "title": "WebSite", + "description": "A WebSite is a set of related web pages and other items typically served from a single web domain and accessible via URLs.", + "type": "object", + "allOf": [ + { + "description": "The most generic kind of creative work, including books, movies, photographs, software programs, etc.", + "$ref": "schema:CreativeWork" + } + ], + "properties": { + "issn": { + "description": "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.", + "type": "string" + } + } +} diff --git a/registry/schema-org/WholesaleStore.schema.json b/registry/schema-org/WholesaleStore.schema.json new file mode 100644 index 0000000..0988fac --- /dev/null +++ b/registry/schema-org/WholesaleStore.schema.json @@ -0,0 +1,8 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:WholesaleStore", + "title": "WholesaleStore", + "description": "A wholesale store.", + "type": "object", + "allOf": [{ "description": "A retail good store.", "$ref": "schema:Store" }] +} diff --git a/registry/schema-org/WinAction.schema.json b/registry/schema-org/WinAction.schema.json new file mode 100644 index 0000000..1b7fe98 --- /dev/null +++ b/registry/schema-org/WinAction.schema.json @@ -0,0 +1,22 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:WinAction", + "title": "WinAction", + "description": "The act of achieving victory in a competitive activity.", + "type": "object", + "allOf": [ + { + "description": "The act of accomplishing something via previous efforts. It is an instantaneous action rather than an ongoing process.", + "$ref": "schema:AchieveAction" + } + ], + "properties": { + "loser": { + "description": "A sub property of participant. The loser of the action.", + "oneOf": [ + { "$ref": "schema:Person" }, + { "type": "array", "items": { "$ref": "schema:Person" } } + ] + } + } +} diff --git a/registry/schema-org/Winery.schema.json b/registry/schema-org/Winery.schema.json new file mode 100644 index 0000000..0cd308c --- /dev/null +++ b/registry/schema-org/Winery.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Winery", + "title": "Winery", + "description": "A winery.", + "type": "object", + "allOf": [ + { + "description": "A food-related business.", + "$ref": "schema:FoodEstablishment" + } + ] +} diff --git a/registry/schema-org/WorkBasedProgram.schema.json b/registry/schema-org/WorkBasedProgram.schema.json new file mode 100644 index 0000000..649c0a3 --- /dev/null +++ b/registry/schema-org/WorkBasedProgram.schema.json @@ -0,0 +1,31 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:WorkBasedProgram", + "title": "WorkBasedProgram", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "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).", + "$ref": "schema:EducationalOccupationalProgram" + } + ], + "properties": { + "occupationalCategory": { + "description": "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.\\n\nNote: for historical reasons, any textual label and formal code provided as a literal may be assumed to be from O*NET-SOC.", + "oneOf": [ + { "anyOf": [{ "type": "string" }, { "$ref": "schema:CategoryCode" }] }, + { + "type": "array", + "items": { + "anyOf": [{ "type": "string" }, { "$ref": "schema:CategoryCode" }] + } + } + ] + }, + "trainingSalary": { + "description": "The estimated salary earned while in the program.", + "$ref": "schema:MonetaryAmountDistribution" + } + } +} diff --git a/registry/schema-org/WorkersUnion.schema.json b/registry/schema-org/WorkersUnion.schema.json new file mode 100644 index 0000000..c891af0 --- /dev/null +++ b/registry/schema-org/WorkersUnion.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:WorkersUnion", + "title": "WorkersUnion", + "description": "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.", + "type": "object", + "allOf": [ + { + "description": "An organization such as a school, NGO, corporation, club, etc.", + "$ref": "schema:Organization" + } + ] +} diff --git a/registry/schema-org/WriteAction.schema.json b/registry/schema-org/WriteAction.schema.json new file mode 100644 index 0000000..f221c5e --- /dev/null +++ b/registry/schema-org/WriteAction.schema.json @@ -0,0 +1,26 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:WriteAction", + "title": "WriteAction", + "description": "The act of authoring written creative content.", + "type": "object", + "allOf": [ + { + "description": "The act of deliberately creating/producing/generating/building a result out of the agent.", + "$ref": "schema:CreateAction" + } + ], + "properties": { + "inLanguage": { + "description": "The language of the content or performance or used in an action. Please use one of the language codes from the [IETF BCP 47 standard](http://tools.ietf.org/html/bcp47). See also [[availableLanguage]].", + "anyOf": [{ "type": "string" }, { "$ref": "schema:Language" }] + }, + "language": { + "description": "A sub property of instrument. The language used on this action.", + "oneOf": [ + { "$ref": "schema:Language" }, + { "type": "array", "items": { "$ref": "schema:Language" } } + ] + } + } +} diff --git a/registry/schema-org/XPathType.schema.json b/registry/schema-org/XPathType.schema.json new file mode 100644 index 0000000..29ba462 --- /dev/null +++ b/registry/schema-org/XPathType.schema.json @@ -0,0 +1,8 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:XPathType", + "title": "XPathType", + "description": "Text representing an XPath (typically but not necessarily version 1.0).", + "type": "object", + "allOf": [{ "description": "Data type: Text.", "$ref": "schema:Text" }] +} diff --git a/registry/schema-org/Zoo.schema.json b/registry/schema-org/Zoo.schema.json new file mode 100644 index 0000000..23373b4 --- /dev/null +++ b/registry/schema-org/Zoo.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "schema:Zoo", + "title": "Zoo", + "description": "A zoo.", + "type": "object", + "allOf": [ + { + "description": "A public structure, such as a town hall or concert hall.", + "$ref": "schema:CivicStructure" + } + ] +} diff --git a/registry/schemas.go b/registry/schemas.go new file mode 100644 index 0000000..9513308 --- /dev/null +++ b/registry/schemas.go @@ -0,0 +1,118 @@ +package registry + +import ( + "bytes" + "embed" + "encoding/json" + "fmt" + "path/filepath" + "strings" + "sync" + + "github.com/santhosh-tekuri/jsonschema/v6" +) + +//go:embed schema-org/*.json +var schemasFS embed.FS + +var ( + loadOnce sync.Once + compiler *jsonschema.Compiler + compileErr error + schemaCache sync.Map // map[string]*jsonschema.Schema +) + +// ValidateSchema validates instance against the Schema.org JSON Schema named `schemaName`. +// Examples: ValidateSchema(inst, "Recipe"), ValidateSchema(inst, "schema:Recipe"). +func ValidateSchema(instance any, schemaName string) error { + if err := ensureCompiler(); err != nil { + return err + } + + ref := normalizeRef(schemaName) + + // Fast-path: reuse compiled schema if we have it. + if v, ok := schemaCache.Load(ref); ok { + if err := v.(*jsonschema.Schema).Validate(instance); err != nil { + return fmt.Errorf("validation failed: %w", err) + } + return nil + } + + // Compile on first use, then cache. + sch, err := compiler.Compile(ref) + if err != nil { + return fmt.Errorf("failed to compile schema %q: %w", ref, err) + } + schemaCache.Store(ref, sch) + + if err := sch.Validate(instance); err != nil { + return fmt.Errorf("validation failed: %w", err) + } + return nil +} + +// --- internals --- + +func ensureCompiler() error { + loadOnce.Do(func() { + c := jsonschema.NewCompiler() + + // Load all embedded schemas and register them under their $id (e.g., "schema:Recipe"). + entries, err := schemasFS.ReadDir("schema-org") + if err != nil { + compileErr = fmt.Errorf("read schema directory: %w", err) + return + } + + for _, e := range entries { + if e.IsDir() || !strings.HasSuffix(e.Name(), ".json") { + continue + } + raw, err := schemasFS.ReadFile(filepath.ToSlash("schema-org/" + e.Name())) + if err != nil { + compileErr = fmt.Errorf("read %s: %w", e.Name(), err) + return + } + + // Unmarshal once for the compiler, but use $id from the raw JSON as the resource name. + js, err := jsonschema.UnmarshalJSON(bytes.NewReader(raw)) + if err != nil { + compileErr = fmt.Errorf("unmarshal %s: %w", e.Name(), err) + return + } + + id := extractID(raw) + if id == "" { + // Fallbacks if $id is missing; Schema.org dumps typically use "schema:". + base := strings.TrimSuffix(e.Name(), ".json") + id = "schema:" + base + } + + if err := c.AddResource(id, js); err != nil { + compileErr = fmt.Errorf("add resource %s: %w", id, err) + return + } + } + + compiler = c + }) + return compileErr +} + +func extractID(raw []byte) string { + var tmp struct { + ID string `json:"$id"` + } + _ = json.Unmarshal(raw, &tmp) + return strings.TrimSpace(tmp.ID) +} + +func normalizeRef(name string) string { + n := strings.TrimSpace(name) + // Accept "Recipe" or "schema:Recipe" transparently. + if strings.HasPrefix(n, "schema:") || strings.HasPrefix(n, "http://") || strings.HasPrefix(n, "https://") { + return n + } + return "schema:" + n +} diff --git a/registry/templates.go b/registry/templates.go new file mode 100644 index 0000000..315e30a --- /dev/null +++ b/registry/templates.go @@ -0,0 +1,25 @@ +// Package registry provides functionality for managing and accessing embedded file systems and directories. +package registry + +import ( + "embed" + "io" +) + +//go:embed templates/*.marka +var templates embed.FS + +func GetTemplate(name string) (string, error) { + templateFile, err := templates.Open("templates/" + name + ".marka") + if err != nil { + return "", err + } + defer templateFile.Close() + + templateBytes, err := io.ReadAll(templateFile) + if err != nil { + return "", err + } + + return string(templateBytes), nil +} diff --git a/registry/templates/recipe.marka b/registry/templates/Recipe.marka similarity index 69% rename from registry/templates/recipe.marka rename to registry/templates/Recipe.marka index 0bb0ae9..891ca17 100644 --- a/registry/templates/recipe.marka +++ b/registry/templates/Recipe.marka @@ -3,7 +3,12 @@ path: . codec: yaml fields: - - path: name + - path: "@context" + codec: const + value: https://schema.org + - path: "@type" + codec: const + value: Recipe - path: image - path: author.@type codec: const @@ -25,8 +30,7 @@ path: recipeIngredient codec: list required: true - item: - template: "- { . }" + listTemplate: "- { . }" } ## Steps @@ -34,6 +38,5 @@ path: recipeInstructions codec: list required: true - item: - template: "{ @index }. { . }" + listTemplate: "{ @index }. { . }" } diff --git a/registry/templates/_default.marka b/registry/templates/_default.marka new file mode 100644 index 0000000..92d86bb --- /dev/null +++ b/registry/templates/_default.marka @@ -0,0 +1,10 @@ +--- +{ + path: . + codec: yaml + fields: + - path: "@type" + codec: const + value: Recipe +} +--- diff --git a/registry/templates_test.go b/registry/templates_test.go new file mode 100644 index 0000000..7340d99 --- /dev/null +++ b/registry/templates_test.go @@ -0,0 +1,38 @@ +package registry_test + +import ( + "testing" + + "git.max-richter.dev/max/marka/registry" +) + +func TestValidateRecipe_InvalidType(t *testing.T) { + recipe := map[string]any{ + "@type": "Recipe", + "recipeYield": 4, + "recipeIngredient": []string{ + "500 g flour", + "300 ml water", + }, + "recipeInstructions": "Mix and bake.", + } + + if err := registry.ValidateSchema(recipe, "schema:Recipe"); err == nil { + t.Fatalf("expected validation error for invalid recipe, got nil") + } +} + +func TestValidateRecipe_Valid(t *testing.T) { + recipe := map[string]any{ + "@type": "Recipe", + "name": "Simple Bread", + "cookTime": "PT30M", + "recipeIngredient": []any{"500 g flour", "300 ml water", "10 g salt", "3 g yeast"}, + "recipeInstructions": "Mix ingredients, let dough rise, bake at 220°C for 35 minutes.", + "recipeYield": "1 loaf", + } + + if err := registry.ValidateSchema(recipe, "schema:Recipe"); err != nil { + t.Fatalf("expected valid recipe, got error: %v", err) + } +} diff --git a/template/blocks.go b/template/blocks.go new file mode 100644 index 0000000..eb80059 --- /dev/null +++ b/template/blocks.go @@ -0,0 +1,176 @@ +// Package template contains the logic for parsing template blocks. +package template + +import ( + "fmt" + "strings" + + "go.yaml.in/yaml/v4" +) + +// TemplateType represents whether a template is short, long, or invalid. +type TemplateType int + +const ( + InvalidTemplate TemplateType = iota + ShortTemplate + ExtendedTemplate +) + +// DetectTemplateType checks if the template is short or long. +func DetectTemplateType(tmpl string) TemplateType { + trimmed := strings.TrimSpace(tmpl) + + // Short type: starts with "{" and ends with "}" on a single line, + // and contains "|" or "," inside for inline definition + // Matchs for example { name | text,required } + if strings.HasPrefix(trimmed, "{") && + strings.HasSuffix(trimmed, "}") && + !strings.Contains(trimmed, "\n") { + return ShortTemplate + } + + // Long type: multiline and contains keys like "path:" or "codec:" inside + // Matches for example: + // { + // path: name + // codec: text + // required: true + // } + if strings.Contains(trimmed, "\n") && + (strings.Contains(trimmed, "path:") || strings.Contains(trimmed, "codec:")) { + return ExtendedTemplate + } + + return InvalidTemplate +} + +func cleanTemplate(input string) string { + s := strings.TrimSpace(input) + s = strings.TrimPrefix(s, "{") + s = strings.TrimSuffix(s, "}") + s = strings.Trim(s, "\n") + return s +} + +func parseShortTemplate(input string) (Block, error) { + split := strings.Split(cleanTemplate(input), "|") + if len(split) < 1 { + return Block{}, fmt.Errorf("invalid short template") + } + + block := Block{ + Type: DataBlock, + Path: strings.TrimSpace(split[0]), + Codec: CodecText, + content: input, + } + + if len(split) > 1 { + optionSplit := strings.SplitSeq(split[1], ",") + for option := range optionSplit { + switch strings.TrimSpace(option) { + case "required": + block.Required = true + case "number": + block.Codec = CodecNumber + } + } + } + + return block, nil +} + +type yamlBlock struct { + Path string `yaml:"path"` + Codec string `yaml:"codec"` + Required bool `yaml:"required,omitempty"` + Value any `yaml:"value,omitempty"` + Fields []yamlField `yaml:"fields"` + ListTemplate string `yaml:"listTemplate,omitempty"` +} + +type yamlField struct { + Path string `yaml:"path"` + Value any `yaml:"value,omitempty"` + Codec string `yaml:"codec"` + Required bool `yaml:"required"` +} + +func parseYamlTemplate(input string) (block Block, err error) { + var blk yamlBlock + + cleaned := cleanTemplate(input) + + dec := yaml.NewDecoder(strings.NewReader(cleaned)) + dec.KnownFields(true) + + if err := dec.Decode(&blk); err != nil { + return block, fmt.Errorf("content '%q': %w", cleaned, err) + } + + if blk.Path == "" { + return block, fmt.Errorf("missing top-level 'path'") + } + + if blk.Codec == "" { + blk.Codec = "text" + } + + codec, err := parseCodecType(blk.Codec) + if err != nil { + return block, fmt.Errorf("failed to parse codec: %w", err) + } + + var fields []BlockField + + for _, field := range blk.Fields { + if field.Path == "" { + return block, fmt.Errorf("failed to parse field: %v", field) + } + + if field.Codec == "" { + field.Codec = "text" + } + + fieldCodec, err := parseCodecType(field.Codec) + if err != nil { + return block, fmt.Errorf("failed to parse codec: %w", err) + } + + fields = append(fields, BlockField{ + Path: field.Path, + CodecType: fieldCodec, + Required: field.Required, + Value: field.Value, + }) + + } + + return Block{ + Type: DataBlock, + Path: blk.Path, + Codec: codec, + Fields: fields, + ListTemplate: blk.ListTemplate, + content: input, + }, nil +} + +func ParseTemplateBlock(template string, blockType BlockType) (block Block, err error) { + if blockType == MatchingBlock { + return Block{ + Type: MatchingBlock, + content: template, + }, nil + } + + switch DetectTemplateType(template) { + case ShortTemplate: + return parseShortTemplate(template) + case ExtendedTemplate: + return parseYamlTemplate(template) + } + + return block, fmt.Errorf("invalid template") +} diff --git a/parser/blocks/codecs.go b/template/codecs.go similarity index 97% rename from parser/blocks/codecs.go rename to template/codecs.go index 3b5851e..96d8703 100644 --- a/parser/blocks/codecs.go +++ b/template/codecs.go @@ -1,4 +1,4 @@ -package blocks +package template import "fmt" diff --git a/template/compile.go b/template/compile.go new file mode 100644 index 0000000..ff22bb4 --- /dev/null +++ b/template/compile.go @@ -0,0 +1,75 @@ +package template + +import ( + "fmt" +) + +// CompileTemplate scans once, emitting: +// - data blocks: inner content between a line that's exactly "{" and a line that's exactly "}" +// - matching blocks: gaps between data blocks (excluding the brace lines themselves) +func CompileTemplate(template string) ([]Block, error) { + var out []Block + var curlyIndex int + + const OPENING = '{' + const CLOSING = '}' + + var start int + var blockType BlockType + + if len(template) > 0 && template[0] == OPENING { + blockType = DataBlock + } else { + blockType = MatchingBlock + } + + for i, r := range template { + + nextCurlyIndex := curlyIndex + + switch r { + case OPENING: + nextCurlyIndex++ + case CLOSING: + nextCurlyIndex-- + } + + if curlyIndex == 0 && nextCurlyIndex == 1 { + if i > start { + block, err := ParseTemplateBlock(template[start:i], blockType) + if err != nil { + return nil, fmt.Errorf("cannot parse block: %w", err) + } + out = append(out, block) + } + start = i + blockType = DataBlock + } else if curlyIndex == 1 && nextCurlyIndex == 0 { + + if i > start { + block, err := ParseTemplateBlock(template[start:i+1], blockType) + if err != nil { + return nil, fmt.Errorf("cannot parse block: %w", err) + } + out = append(out, block) + } + + nextChar := ' ' + if i+1 < len(template) { + nextChar = rune(template[i+1]) + } + + if nextChar == OPENING { + start = i + 1 + blockType = DataBlock + } else { + start = i + 1 + blockType = MatchingBlock + } + } + + curlyIndex = nextCurlyIndex + } + + return out, nil +} diff --git a/template/compile_test.go b/template/compile_test.go new file mode 100644 index 0000000..f4efe95 --- /dev/null +++ b/template/compile_test.go @@ -0,0 +1,100 @@ +package template_test + +import ( + "testing" + + "git.max-richter.dev/max/marka/registry" + "git.max-richter.dev/max/marka/template" +) + +func TestExtractBlocks(t *testing.T) { + src, err := registry.GetTemplate("Recipe") + if err != nil { + t.Errorf("Failed to extract blocks: %s", err.Error()) + t.FailNow() + } + + templateBlocks, err := template.CompileTemplate(src) + if err != nil { + t.Errorf("Failed to extract blocks: %s", err.Error()) + t.FailNow() + } + + expected := []template.Block{ + { + Type: template.MatchingBlock, + }, + { + Type: template.DataBlock, + Codec: "yaml", + Path: ".", + Fields: []template.BlockField{ + { + Path: "@type", + }, + { + Path: "image", + }, + { + Path: "author.@type", + }, + { + Path: "author.name", + }, + { + Path: "datePublished", + }, + { + Path: "prepTime", + }, + { + Path: "cookTime", + }, + { + Path: "recipeYield", + }, + }, + }, + {Type: template.MatchingBlock}, + {Type: template.DataBlock, Path: "name", Codec: "text"}, + {Type: template.MatchingBlock}, + {Type: template.DataBlock, Path: "description", Codec: "text"}, + {Type: template.MatchingBlock}, + {Type: template.DataBlock, Path: "recipeIngredient", Codec: "list", ListTemplate: "- { . }"}, + {Type: template.MatchingBlock}, + {Type: template.DataBlock, Path: "recipeInstructions", Codec: "list", ListTemplate: "{ @index }. { . }"}, + } + + if len(templateBlocks) != len(expected) { + t.Fatalf("expected %d blocks, got %d", len(expected), len(templateBlocks)) + } + + for i, b := range templateBlocks { + exp := expected[i] + if b.Type != exp.Type { + t.Errorf("Block#%d Type '%s' did not match expected type '%s'", i, b.Type, exp.Type) + } + if b.Path != exp.Path { + t.Errorf("Block#%d Path '%s' did not match expected path '%s'", i, b.Path, exp.Path) + } + if b.Codec != exp.Codec { + t.Errorf("Block#%d Codec '%s' did not match expected codec '%s'", i, b.Codec, exp.Codec) + } + } +} + +func TestExtractInlineTemplate(t *testing.T) { + testCases := []string{ + "- { . }", + "- { amount } { type }", + } + + for _, tc := range testCases { + _, err := template.CompileTemplate(tc) + if err != nil { + t.Errorf("Failed to extract blocks: %s", err.Error()) + t.FailNow() + } + + } +} diff --git a/template/go.mod b/template/go.mod new file mode 100644 index 0000000..2a9c7a9 --- /dev/null +++ b/template/go.mod @@ -0,0 +1,5 @@ +module git.max-richter.dev/max/marka/template + +go 1.24.3 + +require go.yaml.in/yaml/v4 v4.0.0-rc.1 diff --git a/template/go.sum b/template/go.sum new file mode 100644 index 0000000..1dd5057 --- /dev/null +++ b/template/go.sum @@ -0,0 +1,2 @@ +go.yaml.in/yaml/v4 v4.0.0-rc.1 h1:4J1+yLKUIPGexM/Si+9d3pij4hdc7aGO04NhrElqXbY= +go.yaml.in/yaml/v4 v4.0.0-rc.1/go.mod h1:CBdeces52/nUXndfQ5OY8GEQuNR9uEEOJPZj/Xq5IzU= diff --git a/template/structs.go b/template/structs.go new file mode 100644 index 0000000..450efb6 --- /dev/null +++ b/template/structs.go @@ -0,0 +1,30 @@ +package template + +type BlockType string + +const ( + DataBlock BlockType = "data" // content between lines "{" and "}" + MatchingBlock BlockType = "matching" // everything outside data blocks +) + +type BlockField struct { + Path string + CodecType CodecType + Required bool + Value any +} + +type Block struct { + Type BlockType + Path string + Codec CodecType + Required bool + ListTemplate string + Fields []BlockField + Value any + content string +} + +func (b Block) GetContent() string { + return b.content +}