vendor/spatie/schema-org/src/Graph.php line 1191

Open in your IDE?
  1. <?php
  2. namespace Spatie\SchemaOrg;
  3. use ArrayAccess;
  4. use BadMethodCallException;
  5. use Closure;
  6. use JsonSerializable;
  7. use ReflectionClass;
  8. use ReflectionNamedType;
  9. use Spatie\SchemaOrg\Exceptions\InvalidType;
  10. use Spatie\SchemaOrg\Exceptions\TypeAlreadyInGraph;
  11. use Spatie\SchemaOrg\Exceptions\TypeNotInGraph;
  12. /**
  13.  * @method self|ThreeDimensionalModel threeDimensionalModel(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  14.  * @method self|AMRadioChannel aMRadioChannel(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  15.  * @method self|APIReference aPIReference(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  16.  * @method self|AboutPage aboutPage(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  17.  * @method self|AcceptAction acceptAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  18.  * @method self|Accommodation accommodation(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  19.  * @method self|AccountingService accountingService(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  20.  * @method self|AchieveAction achieveAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  21.  * @method self|Action action(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  22.  * @method self|ActionAccessSpecification actionAccessSpecification(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  23.  * @method self|ActionStatusType actionStatusType(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  24.  * @method self|ActivateAction activateAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  25.  * @method self|AddAction addAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  26.  * @method self|AdministrativeArea administrativeArea(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  27.  * @method self|AdultEntertainment adultEntertainment(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  28.  * @method self|AdvertiserContentArticle advertiserContentArticle(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  29.  * @method self|AggregateOffer aggregateOffer(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  30.  * @method self|AggregateRating aggregateRating(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  31.  * @method self|AgreeAction agreeAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  32.  * @method self|Airline airline(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  33.  * @method self|Airport airport(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  34.  * @method self|AlignmentObject alignmentObject(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  35.  * @method self|AllocateAction allocateAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  36.  * @method self|AmpStory ampStory(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  37.  * @method self|AmusementPark amusementPark(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  38.  * @method self|AnalysisNewsArticle analysisNewsArticle(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  39.  * @method self|AnatomicalStructure anatomicalStructure(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  40.  * @method self|AnatomicalSystem anatomicalSystem(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  41.  * @method self|AnimalShelter animalShelter(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  42.  * @method self|Answer answer(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  43.  * @method self|Apartment apartment(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  44.  * @method self|ApartmentComplex apartmentComplex(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  45.  * @method self|AppendAction appendAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  46.  * @method self|ApplyAction applyAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  47.  * @method self|ApprovedIndication approvedIndication(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  48.  * @method self|Aquarium aquarium(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  49.  * @method self|ArchiveComponent archiveComponent(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  50.  * @method self|ArchiveOrganization archiveOrganization(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  51.  * @method self|ArriveAction arriveAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  52.  * @method self|ArtGallery artGallery(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  53.  * @method self|Artery artery(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  54.  * @method self|Article article(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  55.  * @method self|AskAction askAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  56.  * @method self|AskPublicNewsArticle askPublicNewsArticle(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  57.  * @method self|AssessAction assessAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  58.  * @method self|AssignAction assignAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  59.  * @method self|Atlas atlas(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  60.  * @method self|Attorney attorney(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  61.  * @method self|Audience audience(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  62.  * @method self|AudioObject audioObject(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  63.  * @method self|AudioObjectSnapshot audioObjectSnapshot(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  64.  * @method self|Audiobook audiobook(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  65.  * @method self|AuthorizeAction authorizeAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  66.  * @method self|AutoBodyShop autoBodyShop(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  67.  * @method self|AutoDealer autoDealer(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  68.  * @method self|AutoPartsStore autoPartsStore(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  69.  * @method self|AutoRental autoRental(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  70.  * @method self|AutoRepair autoRepair(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  71.  * @method self|AutoWash autoWash(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  72.  * @method self|AutomatedTeller automatedTeller(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  73.  * @method self|AutomotiveBusiness automotiveBusiness(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  74.  * @method self|BackgroundNewsArticle backgroundNewsArticle(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  75.  * @method self|Bakery bakery(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  76.  * @method self|BankAccount bankAccount(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  77.  * @method self|BankOrCreditUnion bankOrCreditUnion(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  78.  * @method self|BarOrPub barOrPub(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  79.  * @method self|Barcode barcode(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  80.  * @method self|Beach beach(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  81.  * @method self|BeautySalon beautySalon(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  82.  * @method self|BedAndBreakfast bedAndBreakfast(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  83.  * @method self|BedDetails bedDetails(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  84.  * @method self|BedType bedType(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  85.  * @method self|BefriendAction befriendAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  86.  * @method self|BikeStore bikeStore(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  87.  * @method self|BioChemEntity bioChemEntity(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  88.  * @method self|Blog blog(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  89.  * @method self|BlogPosting blogPosting(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  90.  * @method self|BloodTest bloodTest(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  91.  * @method self|BoardingPolicyType boardingPolicyType(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  92.  * @method self|BoatReservation boatReservation(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  93.  * @method self|BoatTerminal boatTerminal(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  94.  * @method self|BoatTrip boatTrip(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  95.  * @method self|BodyMeasurementTypeEnumeration bodyMeasurementTypeEnumeration(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  96.  * @method self|BodyOfWater bodyOfWater(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  97.  * @method self|Bone bone(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  98.  * @method self|Book book(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  99.  * @method self|BookFormatType bookFormatType(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  100.  * @method self|BookSeries bookSeries(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  101.  * @method self|BookStore bookStore(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  102.  * @method self|BookmarkAction bookmarkAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  103.  * @method self|BorrowAction borrowAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  104.  * @method self|BowlingAlley bowlingAlley(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  105.  * @method self|BrainStructure brainStructure(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  106.  * @method self|Brand brand(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  107.  * @method self|BreadcrumbList breadcrumbList(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  108.  * @method self|Brewery brewery(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  109.  * @method self|Bridge bridge(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  110.  * @method self|BroadcastChannel broadcastChannel(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  111.  * @method self|BroadcastEvent broadcastEvent(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  112.  * @method self|BroadcastFrequencySpecification broadcastFrequencySpecification(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  113.  * @method self|BroadcastService broadcastService(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  114.  * @method self|BrokerageAccount brokerageAccount(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  115.  * @method self|BuddhistTemple buddhistTemple(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  116.  * @method self|BusOrCoach busOrCoach(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  117.  * @method self|BusReservation busReservation(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  118.  * @method self|BusStation busStation(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  119.  * @method self|BusStop busStop(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  120.  * @method self|BusTrip busTrip(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  121.  * @method self|BusinessAudience businessAudience(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  122.  * @method self|BusinessEntityType businessEntityType(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  123.  * @method self|BusinessEvent businessEvent(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  124.  * @method self|BusinessFunction businessFunction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  125.  * @method self|BuyAction buyAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  126.  * @method self|CDCPMDRecord cDCPMDRecord(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  127.  * @method self|CableOrSatelliteService cableOrSatelliteService(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  128.  * @method self|CafeOrCoffeeShop cafeOrCoffeeShop(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  129.  * @method self|Campground campground(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  130.  * @method self|CampingPitch campingPitch(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  131.  * @method self|Canal canal(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  132.  * @method self|CancelAction cancelAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  133.  * @method self|Car car(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  134.  * @method self|CarUsageType carUsageType(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  135.  * @method self|Casino casino(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  136.  * @method self|CategoryCode categoryCode(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  137.  * @method self|CategoryCodeSet categoryCodeSet(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  138.  * @method self|CatholicChurch catholicChurch(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  139.  * @method self|Cemetery cemetery(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  140.  * @method self|Chapter chapter(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  141.  * @method self|CheckAction checkAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  142.  * @method self|CheckInAction checkInAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  143.  * @method self|CheckOutAction checkOutAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  144.  * @method self|CheckoutPage checkoutPage(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  145.  * @method self|ChemicalSubstance chemicalSubstance(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  146.  * @method self|ChildCare childCare(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  147.  * @method self|ChildrensEvent childrensEvent(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  148.  * @method self|ChooseAction chooseAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  149.  * @method self|Church church(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  150.  * @method self|City city(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  151.  * @method self|CityHall cityHall(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  152.  * @method self|CivicStructure civicStructure(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  153.  * @method self|Claim claim(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  154.  * @method self|ClaimReview claimReview(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  155.  * @method self|Clip clip(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  156.  * @method self|ClothingStore clothingStore(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  157.  * @method self|Code code(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  158.  * @method self|Collection collection(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  159.  * @method self|CollectionPage collectionPage(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  160.  * @method self|CollegeOrUniversity collegeOrUniversity(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  161.  * @method self|ComedyClub comedyClub(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  162.  * @method self|ComedyEvent comedyEvent(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  163.  * @method self|ComicCoverArt comicCoverArt(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  164.  * @method self|ComicIssue comicIssue(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  165.  * @method self|ComicSeries comicSeries(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  166.  * @method self|ComicStory comicStory(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  167.  * @method self|Comment comment(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  168.  * @method self|CommentAction commentAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  169.  * @method self|CommunicateAction communicateAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  170.  * @method self|CompleteDataFeed completeDataFeed(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  171.  * @method self|CompoundPriceSpecification compoundPriceSpecification(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  172.  * @method self|ComputerLanguage computerLanguage(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  173.  * @method self|ComputerStore computerStore(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  174.  * @method self|ConfirmAction confirmAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  175.  * @method self|Consortium consortium(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  176.  * @method self|ConsumeAction consumeAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  177.  * @method self|ContactPage contactPage(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  178.  * @method self|ContactPoint contactPoint(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  179.  * @method self|ContactPointOption contactPointOption(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  180.  * @method self|Continent continent(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  181.  * @method self|ControlAction controlAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  182.  * @method self|ConvenienceStore convenienceStore(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  183.  * @method self|Conversation conversation(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  184.  * @method self|CookAction cookAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  185.  * @method self|Corporation corporation(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  186.  * @method self|CorrectionComment correctionComment(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  187.  * @method self|Country country(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  188.  * @method self|Course course(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  189.  * @method self|CourseInstance courseInstance(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  190.  * @method self|Courthouse courthouse(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  191.  * @method self|CoverArt coverArt(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  192.  * @method self|CovidTestingFacility covidTestingFacility(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  193.  * @method self|CreateAction createAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  194.  * @method self|CreativeWork creativeWork(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  195.  * @method self|CreativeWorkSeason creativeWorkSeason(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  196.  * @method self|CreativeWorkSeries creativeWorkSeries(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  197.  * @method self|CreditCard creditCard(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  198.  * @method self|Crematorium crematorium(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  199.  * @method self|CriticReview criticReview(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  200.  * @method self|CssSelectorType cssSelectorType(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  201.  * @method self|CurrencyConversionService currencyConversionService(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  202.  * @method self|DDxElement dDxElement(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  203.  * @method self|DanceEvent danceEvent(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  204.  * @method self|DanceGroup danceGroup(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  205.  * @method self|DataCatalog dataCatalog(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  206.  * @method self|DataDownload dataDownload(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  207.  * @method self|DataFeed dataFeed(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  208.  * @method self|DataFeedItem dataFeedItem(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  209.  * @method self|Dataset dataset(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  210.  * @method self|DatedMoneySpecification datedMoneySpecification(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  211.  * @method self|DayOfWeek dayOfWeek(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  212.  * @method self|DaySpa daySpa(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  213.  * @method self|DeactivateAction deactivateAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  214.  * @method self|DefenceEstablishment defenceEstablishment(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  215.  * @method self|DefinedRegion definedRegion(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  216.  * @method self|DefinedTerm definedTerm(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  217.  * @method self|DefinedTermSet definedTermSet(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  218.  * @method self|DeleteAction deleteAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  219.  * @method self|DeliveryChargeSpecification deliveryChargeSpecification(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  220.  * @method self|DeliveryEvent deliveryEvent(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  221.  * @method self|DeliveryMethod deliveryMethod(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  222.  * @method self|DeliveryTimeSettings deliveryTimeSettings(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  223.  * @method self|Demand demand(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  224.  * @method self|Dentist dentist(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  225.  * @method self|DepartAction departAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  226.  * @method self|DepartmentStore departmentStore(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  227.  * @method self|DepositAccount depositAccount(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  228.  * @method self|DiagnosticLab diagnosticLab(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  229.  * @method self|DiagnosticProcedure diagnosticProcedure(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  230.  * @method self|Diet diet(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  231.  * @method self|DietarySupplement dietarySupplement(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  232.  * @method self|DigitalDocument digitalDocument(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  233.  * @method self|DigitalDocumentPermission digitalDocumentPermission(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  234.  * @method self|DigitalDocumentPermissionType digitalDocumentPermissionType(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  235.  * @method self|DisagreeAction disagreeAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  236.  * @method self|DiscoverAction discoverAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  237.  * @method self|DiscussionForumPosting discussionForumPosting(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  238.  * @method self|DislikeAction dislikeAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  239.  * @method self|Distance distance(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  240.  * @method self|Distillery distillery(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  241.  * @method self|DonateAction donateAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  242.  * @method self|DoseSchedule doseSchedule(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  243.  * @method self|DownloadAction downloadAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  244.  * @method self|DrawAction drawAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  245.  * @method self|Drawing drawing(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  246.  * @method self|DrinkAction drinkAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  247.  * @method self|DriveWheelConfigurationValue driveWheelConfigurationValue(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  248.  * @method self|Drug drug(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  249.  * @method self|DrugClass drugClass(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  250.  * @method self|DrugCost drugCost(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  251.  * @method self|DrugCostCategory drugCostCategory(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  252.  * @method self|DrugLegalStatus drugLegalStatus(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  253.  * @method self|DrugPregnancyCategory drugPregnancyCategory(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  254.  * @method self|DrugPrescriptionStatus drugPrescriptionStatus(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  255.  * @method self|DrugStrength drugStrength(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  256.  * @method self|DryCleaningOrLaundry dryCleaningOrLaundry(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  257.  * @method self|Duration duration(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  258.  * @method self|EUEnergyEfficiencyEnumeration eUEnergyEfficiencyEnumeration(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  259.  * @method self|EatAction eatAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  260.  * @method self|EducationEvent educationEvent(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  261.  * @method self|EducationalAudience educationalAudience(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  262.  * @method self|EducationalOccupationalCredential educationalOccupationalCredential(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  263.  * @method self|EducationalOccupationalProgram educationalOccupationalProgram(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  264.  * @method self|EducationalOrganization educationalOrganization(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  265.  * @method self|Electrician electrician(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  266.  * @method self|ElectronicsStore electronicsStore(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  267.  * @method self|ElementarySchool elementarySchool(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  268.  * @method self|EmailMessage emailMessage(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  269.  * @method self|Embassy embassy(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  270.  * @method self|EmergencyService emergencyService(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  271.  * @method self|EmployeeRole employeeRole(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  272.  * @method self|EmployerAggregateRating employerAggregateRating(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  273.  * @method self|EmployerReview employerReview(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  274.  * @method self|EmploymentAgency employmentAgency(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  275.  * @method self|EndorseAction endorseAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  276.  * @method self|EndorsementRating endorsementRating(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  277.  * @method self|Energy energy(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  278.  * @method self|EnergyConsumptionDetails energyConsumptionDetails(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  279.  * @method self|EnergyEfficiencyEnumeration energyEfficiencyEnumeration(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  280.  * @method self|EnergyStarEnergyEfficiencyEnumeration energyStarEnergyEfficiencyEnumeration(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  281.  * @method self|EngineSpecification engineSpecification(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  282.  * @method self|EntertainmentBusiness entertainmentBusiness(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  283.  * @method self|EntryPoint entryPoint(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  284.  * @method self|Enumeration enumeration(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  285.  * @method self|Episode episode(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  286.  * @method self|Event event(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  287.  * @method self|EventAttendanceModeEnumeration eventAttendanceModeEnumeration(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  288.  * @method self|EventReservation eventReservation(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  289.  * @method self|EventSeries eventSeries(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  290.  * @method self|EventStatusType eventStatusType(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  291.  * @method self|EventVenue eventVenue(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  292.  * @method self|ExchangeRateSpecification exchangeRateSpecification(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  293.  * @method self|ExerciseAction exerciseAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  294.  * @method self|ExerciseGym exerciseGym(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  295.  * @method self|ExercisePlan exercisePlan(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  296.  * @method self|ExhibitionEvent exhibitionEvent(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  297.  * @method self|FAQPage fAQPage(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  298.  * @method self|FMRadioChannel fMRadioChannel(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  299.  * @method self|FastFoodRestaurant fastFoodRestaurant(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  300.  * @method self|Festival festival(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  301.  * @method self|FilmAction filmAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  302.  * @method self|FinancialProduct financialProduct(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  303.  * @method self|FinancialService financialService(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  304.  * @method self|FindAction findAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  305.  * @method self|FireStation fireStation(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  306.  * @method self|Flight flight(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  307.  * @method self|FlightReservation flightReservation(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  308.  * @method self|FloorPlan floorPlan(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  309.  * @method self|Florist florist(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  310.  * @method self|FollowAction followAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  311.  * @method self|FoodEstablishment foodEstablishment(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  312.  * @method self|FoodEstablishmentReservation foodEstablishmentReservation(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  313.  * @method self|FoodEvent foodEvent(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  314.  * @method self|FoodService foodService(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  315.  * @method self|FundingAgency fundingAgency(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  316.  * @method self|FundingScheme fundingScheme(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  317.  * @method self|FurnitureStore furnitureStore(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  318.  * @method self|Game game(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  319.  * @method self|GamePlayMode gamePlayMode(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  320.  * @method self|GameServer gameServer(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  321.  * @method self|GameServerStatus gameServerStatus(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  322.  * @method self|GardenStore gardenStore(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  323.  * @method self|GasStation gasStation(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  324.  * @method self|GatedResidenceCommunity gatedResidenceCommunity(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  325.  * @method self|GenderType genderType(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  326.  * @method self|Gene gene(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  327.  * @method self|GeneralContractor generalContractor(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  328.  * @method self|GeoCircle geoCircle(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  329.  * @method self|GeoCoordinates geoCoordinates(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  330.  * @method self|GeoShape geoShape(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  331.  * @method self|GeospatialGeometry geospatialGeometry(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  332.  * @method self|GiveAction giveAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  333.  * @method self|GolfCourse golfCourse(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  334.  * @method self|GovernmentBenefitsType governmentBenefitsType(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  335.  * @method self|GovernmentBuilding governmentBuilding(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  336.  * @method self|GovernmentOffice governmentOffice(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  337.  * @method self|GovernmentOrganization governmentOrganization(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  338.  * @method self|GovernmentPermit governmentPermit(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  339.  * @method self|GovernmentService governmentService(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  340.  * @method self|Grant grant(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  341.  * @method self|GroceryStore groceryStore(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  342.  * @method self|Guide guide(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  343.  * @method self|HVACBusiness hVACBusiness(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  344.  * @method self|Hackathon hackathon(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  345.  * @method self|HairSalon hairSalon(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  346.  * @method self|HardwareStore hardwareStore(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  347.  * @method self|HealthAndBeautyBusiness healthAndBeautyBusiness(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  348.  * @method self|HealthAspectEnumeration healthAspectEnumeration(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  349.  * @method self|HealthClub healthClub(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  350.  * @method self|HealthInsurancePlan healthInsurancePlan(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  351.  * @method self|HealthPlanCostSharingSpecification healthPlanCostSharingSpecification(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  352.  * @method self|HealthPlanFormulary healthPlanFormulary(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  353.  * @method self|HealthPlanNetwork healthPlanNetwork(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  354.  * @method self|HealthTopicContent healthTopicContent(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  355.  * @method self|HighSchool highSchool(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  356.  * @method self|HinduTemple hinduTemple(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  357.  * @method self|HobbyShop hobbyShop(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  358.  * @method self|HomeAndConstructionBusiness homeAndConstructionBusiness(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  359.  * @method self|HomeGoodsStore homeGoodsStore(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  360.  * @method self|Hospital hospital(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  361.  * @method self|Hostel hostel(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  362.  * @method self|Hotel hotel(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  363.  * @method self|HotelRoom hotelRoom(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  364.  * @method self|House house(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  365.  * @method self|HousePainter housePainter(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  366.  * @method self|HowTo howTo(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  367.  * @method self|HowToDirection howToDirection(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  368.  * @method self|HowToItem howToItem(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  369.  * @method self|HowToSection howToSection(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  370.  * @method self|HowToStep howToStep(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  371.  * @method self|HowToSupply howToSupply(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  372.  * @method self|HowToTip howToTip(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  373.  * @method self|HowToTool howToTool(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  374.  * @method self|HyperToc hyperToc(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  375.  * @method self|HyperTocEntry hyperTocEntry(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  376.  * @method self|IceCreamShop iceCreamShop(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  377.  * @method self|IgnoreAction ignoreAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  378.  * @method self|ImageGallery imageGallery(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  379.  * @method self|ImageObject imageObject(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  380.  * @method self|ImageObjectSnapshot imageObjectSnapshot(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  381.  * @method self|ImagingTest imagingTest(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  382.  * @method self|IndividualProduct individualProduct(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  383.  * @method self|InfectiousAgentClass infectiousAgentClass(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  384.  * @method self|InfectiousDisease infectiousDisease(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  385.  * @method self|InformAction informAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  386.  * @method self|InsertAction insertAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  387.  * @method self|InstallAction installAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  388.  * @method self|InsuranceAgency insuranceAgency(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  389.  * @method self|Intangible intangible(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  390.  * @method self|InteractAction interactAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  391.  * @method self|InteractionCounter interactionCounter(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  392.  * @method self|InternetCafe internetCafe(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  393.  * @method self|InvestmentFund investmentFund(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  394.  * @method self|InvestmentOrDeposit investmentOrDeposit(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  395.  * @method self|InviteAction inviteAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  396.  * @method self|Invoice invoice(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  397.  * @method self|ItemAvailability itemAvailability(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  398.  * @method self|ItemList itemList(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  399.  * @method self|ItemListOrderType itemListOrderType(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  400.  * @method self|ItemPage itemPage(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  401.  * @method self|JewelryStore jewelryStore(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  402.  * @method self|JobPosting jobPosting(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  403.  * @method self|JoinAction joinAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  404.  * @method self|Joint joint(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  405.  * @method self|LakeBodyOfWater lakeBodyOfWater(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  406.  * @method self|Landform landform(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  407.  * @method self|LandmarksOrHistoricalBuildings landmarksOrHistoricalBuildings(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  408.  * @method self|Language language(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  409.  * @method self|LearningResource learningResource(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  410.  * @method self|LeaveAction leaveAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  411.  * @method self|LegalForceStatus legalForceStatus(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  412.  * @method self|LegalService legalService(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  413.  * @method self|LegalValueLevel legalValueLevel(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  414.  * @method self|Legislation legislation(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  415.  * @method self|LegislationObject legislationObject(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  416.  * @method self|LegislativeBuilding legislativeBuilding(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  417.  * @method self|LendAction lendAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  418.  * @method self|Library library(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  419.  * @method self|LibrarySystem librarySystem(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  420.  * @method self|LifestyleModification lifestyleModification(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  421.  * @method self|Ligament ligament(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  422.  * @method self|LikeAction likeAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  423.  * @method self|LinkRole linkRole(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  424.  * @method self|LiquorStore liquorStore(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  425.  * @method self|ListItem listItem(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  426.  * @method self|ListenAction listenAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  427.  * @method self|LiteraryEvent literaryEvent(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  428.  * @method self|LiveBlogPosting liveBlogPosting(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  429.  * @method self|LoanOrCredit loanOrCredit(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  430.  * @method self|LocalBusiness localBusiness(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  431.  * @method self|LocationFeatureSpecification locationFeatureSpecification(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  432.  * @method self|Locksmith locksmith(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  433.  * @method self|LodgingBusiness lodgingBusiness(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  434.  * @method self|LodgingReservation lodgingReservation(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  435.  * @method self|LoseAction loseAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  436.  * @method self|LymphaticVessel lymphaticVessel(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  437.  * @method self|Manuscript manuscript(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  438.  * @method self|Map map(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  439.  * @method self|MapCategoryType mapCategoryType(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  440.  * @method self|MarryAction marryAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  441.  * @method self|Mass mass(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  442.  * @method self|MathSolver mathSolver(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  443.  * @method self|MaximumDoseSchedule maximumDoseSchedule(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  444.  * @method self|MeasurementTypeEnumeration measurementTypeEnumeration(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  445.  * @method self|MediaGallery mediaGallery(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  446.  * @method self|MediaManipulationRatingEnumeration mediaManipulationRatingEnumeration(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  447.  * @method self|MediaObject mediaObject(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  448.  * @method self|MediaReview mediaReview(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  449.  * @method self|MediaReviewItem mediaReviewItem(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  450.  * @method self|MediaSubscription mediaSubscription(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  451.  * @method self|MedicalAudience medicalAudience(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  452.  * @method self|MedicalAudienceType medicalAudienceType(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  453.  * @method self|MedicalBusiness medicalBusiness(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  454.  * @method self|MedicalCause medicalCause(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  455.  * @method self|MedicalClinic medicalClinic(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  456.  * @method self|MedicalCode medicalCode(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  457.  * @method self|MedicalCondition medicalCondition(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  458.  * @method self|MedicalConditionStage medicalConditionStage(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  459.  * @method self|MedicalContraindication medicalContraindication(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  460.  * @method self|MedicalDevice medicalDevice(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  461.  * @method self|MedicalDevicePurpose medicalDevicePurpose(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  462.  * @method self|MedicalEntity medicalEntity(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  463.  * @method self|MedicalEnumeration medicalEnumeration(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  464.  * @method self|MedicalEvidenceLevel medicalEvidenceLevel(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  465.  * @method self|MedicalGuideline medicalGuideline(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  466.  * @method self|MedicalGuidelineContraindication medicalGuidelineContraindication(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  467.  * @method self|MedicalGuidelineRecommendation medicalGuidelineRecommendation(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  468.  * @method self|MedicalImagingTechnique medicalImagingTechnique(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  469.  * @method self|MedicalIndication medicalIndication(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  470.  * @method self|MedicalIntangible medicalIntangible(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  471.  * @method self|MedicalObservationalStudy medicalObservationalStudy(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  472.  * @method self|MedicalObservationalStudyDesign medicalObservationalStudyDesign(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  473.  * @method self|MedicalOrganization medicalOrganization(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  474.  * @method self|MedicalProcedure medicalProcedure(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  475.  * @method self|MedicalProcedureType medicalProcedureType(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  476.  * @method self|MedicalRiskCalculator medicalRiskCalculator(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  477.  * @method self|MedicalRiskEstimator medicalRiskEstimator(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  478.  * @method self|MedicalRiskFactor medicalRiskFactor(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  479.  * @method self|MedicalRiskScore medicalRiskScore(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  480.  * @method self|MedicalScholarlyArticle medicalScholarlyArticle(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  481.  * @method self|MedicalSign medicalSign(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  482.  * @method self|MedicalSignOrSymptom medicalSignOrSymptom(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  483.  * @method self|MedicalSpecialty medicalSpecialty(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  484.  * @method self|MedicalStudy medicalStudy(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  485.  * @method self|MedicalStudyStatus medicalStudyStatus(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  486.  * @method self|MedicalSymptom medicalSymptom(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  487.  * @method self|MedicalTest medicalTest(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  488.  * @method self|MedicalTestPanel medicalTestPanel(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  489.  * @method self|MedicalTherapy medicalTherapy(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  490.  * @method self|MedicalTrial medicalTrial(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  491.  * @method self|MedicalTrialDesign medicalTrialDesign(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  492.  * @method self|MedicalWebPage medicalWebPage(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  493.  * @method self|MedicineSystem medicineSystem(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  494.  * @method self|MeetingRoom meetingRoom(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  495.  * @method self|MensClothingStore mensClothingStore(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  496.  * @method self|Menu menu(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  497.  * @method self|MenuItem menuItem(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  498.  * @method self|MenuSection menuSection(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  499.  * @method self|MerchantReturnEnumeration merchantReturnEnumeration(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  500.  * @method self|MerchantReturnPolicy merchantReturnPolicy(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  501.  * @method self|MerchantReturnPolicySeasonalOverride merchantReturnPolicySeasonalOverride(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  502.  * @method self|Message message(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  503.  * @method self|MiddleSchool middleSchool(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  504.  * @method self|MobileApplication mobileApplication(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  505.  * @method self|MobilePhoneStore mobilePhoneStore(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  506.  * @method self|MolecularEntity molecularEntity(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  507.  * @method self|MonetaryAmount monetaryAmount(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  508.  * @method self|MonetaryAmountDistribution monetaryAmountDistribution(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  509.  * @method self|MonetaryGrant monetaryGrant(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  510.  * @method self|MoneyTransfer moneyTransfer(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  511.  * @method self|MortgageLoan mortgageLoan(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  512.  * @method self|Mosque mosque(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  513.  * @method self|Motel motel(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  514.  * @method self|Motorcycle motorcycle(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  515.  * @method self|MotorcycleDealer motorcycleDealer(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  516.  * @method self|MotorcycleRepair motorcycleRepair(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  517.  * @method self|MotorizedBicycle motorizedBicycle(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  518.  * @method self|Mountain mountain(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  519.  * @method self|MoveAction moveAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  520.  * @method self|Movie movie(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  521.  * @method self|MovieClip movieClip(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  522.  * @method self|MovieRentalStore movieRentalStore(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  523.  * @method self|MovieSeries movieSeries(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  524.  * @method self|MovieTheater movieTheater(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  525.  * @method self|MovingCompany movingCompany(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  526.  * @method self|Muscle muscle(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  527.  * @method self|Museum museum(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  528.  * @method self|MusicAlbum musicAlbum(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  529.  * @method self|MusicAlbumProductionType musicAlbumProductionType(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  530.  * @method self|MusicAlbumReleaseType musicAlbumReleaseType(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  531.  * @method self|MusicComposition musicComposition(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  532.  * @method self|MusicEvent musicEvent(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  533.  * @method self|MusicGroup musicGroup(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  534.  * @method self|MusicPlaylist musicPlaylist(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  535.  * @method self|MusicRecording musicRecording(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  536.  * @method self|MusicRelease musicRelease(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  537.  * @method self|MusicReleaseFormatType musicReleaseFormatType(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  538.  * @method self|MusicStore musicStore(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  539.  * @method self|MusicVenue musicVenue(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  540.  * @method self|MusicVideoObject musicVideoObject(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  541.  * @method self|NGO nGO(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  542.  * @method self|NLNonprofitType nLNonprofitType(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  543.  * @method self|NailSalon nailSalon(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  544.  * @method self|Nerve nerve(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  545.  * @method self|NewsArticle newsArticle(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  546.  * @method self|NewsMediaOrganization newsMediaOrganization(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  547.  * @method self|Newspaper newspaper(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  548.  * @method self|NightClub nightClub(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  549.  * @method self|NonprofitType nonprofitType(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  550.  * @method self|Notary notary(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  551.  * @method self|NoteDigitalDocument noteDigitalDocument(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  552.  * @method self|NutritionInformation nutritionInformation(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  553.  * @method self|Observation observation(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  554.  * @method self|Occupation occupation(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  555.  * @method self|OccupationalExperienceRequirements occupationalExperienceRequirements(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  556.  * @method self|OccupationalTherapy occupationalTherapy(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  557.  * @method self|OceanBodyOfWater oceanBodyOfWater(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  558.  * @method self|Offer offer(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  559.  * @method self|OfferCatalog offerCatalog(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  560.  * @method self|OfferForLease offerForLease(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  561.  * @method self|OfferForPurchase offerForPurchase(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  562.  * @method self|OfferItemCondition offerItemCondition(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  563.  * @method self|OfferShippingDetails offerShippingDetails(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  564.  * @method self|OfficeEquipmentStore officeEquipmentStore(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  565.  * @method self|OnDemandEvent onDemandEvent(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  566.  * @method self|OpeningHoursSpecification openingHoursSpecification(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  567.  * @method self|OpinionNewsArticle opinionNewsArticle(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  568.  * @method self|Optician optician(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  569.  * @method self|Order order(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  570.  * @method self|OrderAction orderAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  571.  * @method self|OrderItem orderItem(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  572.  * @method self|OrderStatus orderStatus(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  573.  * @method self|Organization organization(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  574.  * @method self|OrganizationRole organizationRole(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  575.  * @method self|OrganizeAction organizeAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  576.  * @method self|OutletStore outletStore(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  577.  * @method self|OwnershipInfo ownershipInfo(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  578.  * @method self|PaintAction paintAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  579.  * @method self|Painting painting(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  580.  * @method self|PalliativeProcedure palliativeProcedure(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  581.  * @method self|ParcelDelivery parcelDelivery(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  582.  * @method self|ParentAudience parentAudience(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  583.  * @method self|Park park(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  584.  * @method self|ParkingFacility parkingFacility(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  585.  * @method self|PathologyTest pathologyTest(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  586.  * @method self|Patient patient(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  587.  * @method self|PawnShop pawnShop(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  588.  * @method self|PayAction payAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  589.  * @method self|PaymentCard paymentCard(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  590.  * @method self|PaymentChargeSpecification paymentChargeSpecification(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  591.  * @method self|PaymentMethod paymentMethod(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  592.  * @method self|PaymentService paymentService(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  593.  * @method self|PaymentStatusType paymentStatusType(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  594.  * @method self|PeopleAudience peopleAudience(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  595.  * @method self|PerformAction performAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  596.  * @method self|PerformanceRole performanceRole(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  597.  * @method self|PerformingArtsTheater performingArtsTheater(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  598.  * @method self|PerformingGroup performingGroup(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  599.  * @method self|Periodical periodical(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  600.  * @method self|Permit permit(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  601.  * @method self|Person person(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  602.  * @method self|PetStore petStore(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  603.  * @method self|Pharmacy pharmacy(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  604.  * @method self|Photograph photograph(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  605.  * @method self|PhotographAction photographAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  606.  * @method self|PhysicalActivity physicalActivity(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  607.  * @method self|PhysicalActivityCategory physicalActivityCategory(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  608.  * @method self|PhysicalExam physicalExam(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  609.  * @method self|PhysicalTherapy physicalTherapy(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  610.  * @method self|Physician physician(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  611.  * @method self|Place place(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  612.  * @method self|PlaceOfWorship placeOfWorship(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  613.  * @method self|PlanAction planAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  614.  * @method self|Play play(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  615.  * @method self|PlayAction playAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  616.  * @method self|Playground playground(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  617.  * @method self|Plumber plumber(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  618.  * @method self|PodcastEpisode podcastEpisode(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  619.  * @method self|PodcastSeason podcastSeason(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  620.  * @method self|PodcastSeries podcastSeries(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  621.  * @method self|PoliceStation policeStation(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  622.  * @method self|Pond pond(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  623.  * @method self|PostOffice postOffice(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  624.  * @method self|PostalAddress postalAddress(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  625.  * @method self|PostalCodeRangeSpecification postalCodeRangeSpecification(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  626.  * @method self|Poster poster(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  627.  * @method self|PreOrderAction preOrderAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  628.  * @method self|PrependAction prependAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  629.  * @method self|Preschool preschool(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  630.  * @method self|PresentationDigitalDocument presentationDigitalDocument(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  631.  * @method self|PreventionIndication preventionIndication(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  632.  * @method self|PriceComponentTypeEnumeration priceComponentTypeEnumeration(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  633.  * @method self|PriceSpecification priceSpecification(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  634.  * @method self|PriceTypeEnumeration priceTypeEnumeration(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  635.  * @method self|Product product(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  636.  * @method self|ProductCollection productCollection(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  637.  * @method self|ProductGroup productGroup(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  638.  * @method self|ProductModel productModel(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  639.  * @method self|ProductReturnEnumeration productReturnEnumeration(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  640.  * @method self|ProductReturnPolicy productReturnPolicy(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  641.  * @method self|ProfessionalService professionalService(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  642.  * @method self|ProfilePage profilePage(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  643.  * @method self|ProgramMembership programMembership(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  644.  * @method self|Project project(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  645.  * @method self|PronounceableText pronounceableText(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  646.  * @method self|Property property(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  647.  * @method self|PropertyValue propertyValue(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  648.  * @method self|PropertyValueSpecification propertyValueSpecification(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  649.  * @method self|Protein protein(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  650.  * @method self|PsychologicalTreatment psychologicalTreatment(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  651.  * @method self|PublicSwimmingPool publicSwimmingPool(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  652.  * @method self|PublicToilet publicToilet(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  653.  * @method self|PublicationEvent publicationEvent(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  654.  * @method self|PublicationIssue publicationIssue(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  655.  * @method self|PublicationVolume publicationVolume(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  656.  * @method self|QAPage qAPage(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  657.  * @method self|QualitativeValue qualitativeValue(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  658.  * @method self|QuantitativeValue quantitativeValue(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  659.  * @method self|QuantitativeValueDistribution quantitativeValueDistribution(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  660.  * @method self|Quantity quantity(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  661.  * @method self|Question question(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  662.  * @method self|Quiz quiz(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  663.  * @method self|Quotation quotation(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  664.  * @method self|QuoteAction quoteAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  665.  * @method self|RVPark rVPark(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  666.  * @method self|RadiationTherapy radiationTherapy(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  667.  * @method self|RadioBroadcastService radioBroadcastService(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  668.  * @method self|RadioChannel radioChannel(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  669.  * @method self|RadioClip radioClip(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  670.  * @method self|RadioEpisode radioEpisode(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  671.  * @method self|RadioSeason radioSeason(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  672.  * @method self|RadioSeries radioSeries(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  673.  * @method self|RadioStation radioStation(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  674.  * @method self|Rating rating(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  675.  * @method self|ReactAction reactAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  676.  * @method self|ReadAction readAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  677.  * @method self|RealEstateAgent realEstateAgent(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  678.  * @method self|RealEstateListing realEstateListing(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  679.  * @method self|ReceiveAction receiveAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  680.  * @method self|Recipe recipe(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  681.  * @method self|Recommendation recommendation(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  682.  * @method self|RecommendedDoseSchedule recommendedDoseSchedule(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  683.  * @method self|RecyclingCenter recyclingCenter(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  684.  * @method self|RefundTypeEnumeration refundTypeEnumeration(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  685.  * @method self|RegisterAction registerAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  686.  * @method self|RejectAction rejectAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  687.  * @method self|RentAction rentAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  688.  * @method self|RentalCarReservation rentalCarReservation(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  689.  * @method self|RepaymentSpecification repaymentSpecification(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  690.  * @method self|ReplaceAction replaceAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  691.  * @method self|ReplyAction replyAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  692.  * @method self|Report report(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  693.  * @method self|ReportageNewsArticle reportageNewsArticle(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  694.  * @method self|ReportedDoseSchedule reportedDoseSchedule(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  695.  * @method self|ResearchOrganization researchOrganization(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  696.  * @method self|ResearchProject researchProject(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  697.  * @method self|Researcher researcher(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  698.  * @method self|Reservation reservation(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  699.  * @method self|ReservationPackage reservationPackage(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  700.  * @method self|ReservationStatusType reservationStatusType(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  701.  * @method self|ReserveAction reserveAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  702.  * @method self|Reservoir reservoir(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  703.  * @method self|Residence residence(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  704.  * @method self|Resort resort(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  705.  * @method self|Restaurant restaurant(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  706.  * @method self|RestrictedDiet restrictedDiet(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  707.  * @method self|ResumeAction resumeAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  708.  * @method self|ReturnAction returnAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  709.  * @method self|ReturnFeesEnumeration returnFeesEnumeration(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  710.  * @method self|ReturnLabelSourceEnumeration returnLabelSourceEnumeration(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  711.  * @method self|ReturnMethodEnumeration returnMethodEnumeration(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  712.  * @method self|Review review(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  713.  * @method self|ReviewAction reviewAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  714.  * @method self|ReviewNewsArticle reviewNewsArticle(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  715.  * @method self|RiverBodyOfWater riverBodyOfWater(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  716.  * @method self|Role role(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  717.  * @method self|RoofingContractor roofingContractor(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  718.  * @method self|Room room(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  719.  * @method self|RsvpAction rsvpAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  720.  * @method self|RsvpResponseType rsvpResponseType(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  721.  * @method self|SaleEvent saleEvent(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  722.  * @method self|SatiricalArticle satiricalArticle(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  723.  * @method self|Schedule schedule(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  724.  * @method self|ScheduleAction scheduleAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  725.  * @method self|ScholarlyArticle scholarlyArticle(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  726.  * @method self|School school(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  727.  * @method self|SchoolDistrict schoolDistrict(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  728.  * @method self|ScreeningEvent screeningEvent(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  729.  * @method self|Sculpture sculpture(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  730.  * @method self|SeaBodyOfWater seaBodyOfWater(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  731.  * @method self|SearchAction searchAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  732.  * @method self|SearchResultsPage searchResultsPage(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  733.  * @method self|Season season(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  734.  * @method self|Seat seat(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  735.  * @method self|SeekToAction seekToAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  736.  * @method self|SelfStorage selfStorage(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  737.  * @method self|SellAction sellAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  738.  * @method self|SendAction sendAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  739.  * @method self|Series series(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  740.  * @method self|Service service(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  741.  * @method self|ServiceChannel serviceChannel(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  742.  * @method self|ShareAction shareAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  743.  * @method self|SheetMusic sheetMusic(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  744.  * @method self|ShippingDeliveryTime shippingDeliveryTime(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  745.  * @method self|ShippingRateSettings shippingRateSettings(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  746.  * @method self|ShoeStore shoeStore(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  747.  * @method self|ShoppingCenter shoppingCenter(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  748.  * @method self|ShortStory shortStory(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  749.  * @method self|SingleFamilyResidence singleFamilyResidence(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  750.  * @method self|SiteNavigationElement siteNavigationElement(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  751.  * @method self|SizeGroupEnumeration sizeGroupEnumeration(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  752.  * @method self|SizeSpecification sizeSpecification(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  753.  * @method self|SizeSystemEnumeration sizeSystemEnumeration(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  754.  * @method self|SkiResort skiResort(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  755.  * @method self|SocialEvent socialEvent(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  756.  * @method self|SocialMediaPosting socialMediaPosting(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  757.  * @method self|SoftwareApplication softwareApplication(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  758.  * @method self|SoftwareSourceCode softwareSourceCode(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  759.  * @method self|SolveMathAction solveMathAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  760.  * @method self|SomeProducts someProducts(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  761.  * @method self|SpeakableSpecification speakableSpecification(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  762.  * @method self|SpecialAnnouncement specialAnnouncement(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  763.  * @method self|Specialty specialty(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  764.  * @method self|SportingGoodsStore sportingGoodsStore(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  765.  * @method self|SportsActivityLocation sportsActivityLocation(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  766.  * @method self|SportsClub sportsClub(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  767.  * @method self|SportsEvent sportsEvent(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  768.  * @method self|SportsOrganization sportsOrganization(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  769.  * @method self|SportsTeam sportsTeam(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  770.  * @method self|SpreadsheetDigitalDocument spreadsheetDigitalDocument(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  771.  * @method self|StadiumOrArena stadiumOrArena(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  772.  * @method self|State state(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  773.  * @method self|Statement statement(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  774.  * @method self|StatisticalPopulation statisticalPopulation(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  775.  * @method self|StatusEnumeration statusEnumeration(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  776.  * @method self|SteeringPositionValue steeringPositionValue(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  777.  * @method self|Store store(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  778.  * @method self|StructuredValue structuredValue(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  779.  * @method self|StupidType stupidType(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  780.  * @method self|SubscribeAction subscribeAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  781.  * @method self|Substance substance(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  782.  * @method self|SubwayStation subwayStation(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  783.  * @method self|Suite suite(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  784.  * @method self|SuperficialAnatomy superficialAnatomy(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  785.  * @method self|SurgicalProcedure surgicalProcedure(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  786.  * @method self|SuspendAction suspendAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  787.  * @method self|Synagogue synagogue(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  788.  * @method self|TVClip tVClip(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  789.  * @method self|TVEpisode tVEpisode(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  790.  * @method self|TVSeason tVSeason(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  791.  * @method self|TVSeries tVSeries(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  792.  * @method self|Table table(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  793.  * @method self|TakeAction takeAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  794.  * @method self|TattooParlor tattooParlor(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  795.  * @method self|Taxi taxi(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  796.  * @method self|TaxiReservation taxiReservation(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  797.  * @method self|TaxiService taxiService(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  798.  * @method self|TaxiStand taxiStand(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  799.  * @method self|Taxon taxon(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  800.  * @method self|TechArticle techArticle(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  801.  * @method self|TelevisionChannel televisionChannel(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  802.  * @method self|TelevisionStation televisionStation(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  803.  * @method self|TennisComplex tennisComplex(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  804.  * @method self|TextDigitalDocument textDigitalDocument(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  805.  * @method self|TheaterEvent theaterEvent(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  806.  * @method self|TheaterGroup theaterGroup(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  807.  * @method self|TherapeuticProcedure therapeuticProcedure(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  808.  * @method self|Thesis thesis(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  809.  * @method self|Thing thing(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  810.  * @method self|Ticket ticket(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  811.  * @method self|TieAction tieAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  812.  * @method self|TipAction tipAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  813.  * @method self|TireShop tireShop(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  814.  * @method self|TouristAttraction touristAttraction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  815.  * @method self|TouristDestination touristDestination(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  816.  * @method self|TouristInformationCenter touristInformationCenter(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  817.  * @method self|TouristTrip touristTrip(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  818.  * @method self|ToyStore toyStore(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  819.  * @method self|TrackAction trackAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  820.  * @method self|TradeAction tradeAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  821.  * @method self|TrainReservation trainReservation(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  822.  * @method self|TrainStation trainStation(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  823.  * @method self|TrainTrip trainTrip(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  824.  * @method self|TransferAction transferAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  825.  * @method self|TravelAction travelAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  826.  * @method self|TravelAgency travelAgency(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  827.  * @method self|TreatmentIndication treatmentIndication(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  828.  * @method self|Trip trip(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  829.  * @method self|TypeAndQuantityNode typeAndQuantityNode(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  830.  * @method self|UKNonprofitType uKNonprofitType(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  831.  * @method self|USNonprofitType uSNonprofitType(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  832.  * @method self|UnRegisterAction unRegisterAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  833.  * @method self|UnitPriceSpecification unitPriceSpecification(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  834.  * @method self|UpdateAction updateAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  835.  * @method self|UseAction useAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  836.  * @method self|UserBlocks userBlocks(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  837.  * @method self|UserCheckins userCheckins(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  838.  * @method self|UserComments userComments(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  839.  * @method self|UserDownloads userDownloads(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  840.  * @method self|UserInteraction userInteraction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  841.  * @method self|UserLikes userLikes(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  842.  * @method self|UserPageVisits userPageVisits(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  843.  * @method self|UserPlays userPlays(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  844.  * @method self|UserPlusOnes userPlusOnes(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  845.  * @method self|UserReview userReview(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  846.  * @method self|UserTweets userTweets(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  847.  * @method self|Vehicle vehicle(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  848.  * @method self|Vein vein(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  849.  * @method self|Vessel vessel(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  850.  * @method self|VeterinaryCare veterinaryCare(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  851.  * @method self|VideoGallery videoGallery(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  852.  * @method self|VideoGame videoGame(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  853.  * @method self|VideoGameClip videoGameClip(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  854.  * @method self|VideoGameSeries videoGameSeries(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  855.  * @method self|VideoObject videoObject(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  856.  * @method self|VideoObjectSnapshot videoObjectSnapshot(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  857.  * @method self|ViewAction viewAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  858.  * @method self|VirtualLocation virtualLocation(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  859.  * @method self|VisualArtsEvent visualArtsEvent(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  860.  * @method self|VisualArtwork visualArtwork(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  861.  * @method self|VitalSign vitalSign(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  862.  * @method self|Volcano volcano(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  863.  * @method self|VoteAction voteAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  864.  * @method self|WPAdBlock wPAdBlock(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  865.  * @method self|WPFooter wPFooter(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  866.  * @method self|WPHeader wPHeader(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  867.  * @method self|WPSideBar wPSideBar(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  868.  * @method self|WantAction wantAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  869.  * @method self|WarrantyPromise warrantyPromise(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  870.  * @method self|WarrantyScope warrantyScope(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  871.  * @method self|WatchAction watchAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  872.  * @method self|Waterfall waterfall(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  873.  * @method self|WearAction wearAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  874.  * @method self|WearableMeasurementTypeEnumeration wearableMeasurementTypeEnumeration(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  875.  * @method self|WearableSizeGroupEnumeration wearableSizeGroupEnumeration(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  876.  * @method self|WearableSizeSystemEnumeration wearableSizeSystemEnumeration(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  877.  * @method self|WebAPI webAPI(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  878.  * @method self|WebApplication webApplication(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  879.  * @method self|WebContent webContent(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  880.  * @method self|WebPage webPage(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  881.  * @method self|WebPageElement webPageElement(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  882.  * @method self|WebSite webSite(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  883.  * @method self|WholesaleStore wholesaleStore(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  884.  * @method self|WinAction winAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  885.  * @method self|Winery winery(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  886.  * @method self|WorkBasedProgram workBasedProgram(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  887.  * @method self|WorkersUnion workersUnion(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  888.  * @method self|WriteAction writeAction(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  889.  * @method self|XPathType xPathType(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  890.  * @method self|Zoo zoo(string|\Closure|null $identifier = null, \Closure|null $callback = null)
  891.  */
  892. class Graph implements TypeArrayAccessJsonSerializable
  893. {
  894.     public const IDENTIFIER_DEFAULT 'default';
  895.     /** @var Type[] */
  896.     protected $nodes = [];
  897.     /** @var array */
  898.     protected $hidden = [];
  899.     /** @var string|null */
  900.     protected $context;
  901.     public function __construct(?string $context null)
  902.     {
  903.         $this->context $context;
  904.     }
  905.     /**
  906.      * This overloads all \Spatie\SchemaOrg\Schema construction methods.
  907.      * You can call them the same like on the \Spatie\SchemaOrg\Schema class.
  908.      * But you can also use the extended signatures.
  909.      *
  910.      * Graph::organisation(): Organisation
  911.      * Graph::organisation('spatie'): Organisation
  912.      * Graph::organisation(function(Organisation $organisation, Graph $graph) {}): Graph
  913.      * Graph::organisation('spatie', function(Organisation $organisation, Graph $graph) {}): Graph
  914.      *
  915.      * @see \Spatie\SchemaOrg\Schema
  916.      *
  917.      * @param string $method
  918.      * @param array $arguments
  919.      *
  920.      * @return $this|Type
  921.      *
  922.      * @throws \ReflectionException
  923.      * @throws \BadMethodCallException
  924.      */
  925.     public function __call(string $method, array $arguments)
  926.     {
  927.         if (is_callable([Schema::class, $method])) {
  928.             $type = (new ReflectionClass(Schema::class))->getMethod($method)->getReturnType();
  929.             if (! $type instanceof ReflectionNamedType) {
  930.                 throw new BadMethodCallException(sprintf('The method "%s" has an invalid return type which does not resolve to "%s".'$methodReflectionNamedType::class));
  931.             }
  932.             $identifier self::IDENTIFIER_DEFAULT;
  933.             if (isset($arguments[0])) {
  934.                 if (is_string($arguments[0])) {
  935.                     $identifier $arguments[0];
  936.                     if (isset($arguments[1]) && is_callable($arguments[1])) {
  937.                         $callback $arguments[1];
  938.                     }
  939.                 } elseif (is_callable($arguments[0])) {
  940.                     $callback $arguments[0];
  941.                 }
  942.             }
  943.             $schema $this->getOrCreate($type->getName(), $identifier);
  944.             if (isset($callback)) {
  945.                 call_user_func($callback$schema$this);
  946.                 return $this;
  947.             }
  948.             return $schema;
  949.         }
  950.         throw new BadMethodCallException(sprintf('The method "%s" does not exist on class "%s".'$methodget_class($this)));
  951.     }
  952.     public function if(bool $conditionClosure $callback)
  953.     {
  954.         if ($condition) {
  955.             $callback($this);
  956.         }
  957.         return $this;
  958.     }
  959.     public function add(Type $schemastring $identifier self::IDENTIFIER_DEFAULT): self
  960.     {
  961.         $type get_class($schema);
  962.         if ($this->has($type$identifier)) {
  963.             throw new TypeAlreadyInGraph(sprintf('The graph already has an item of type "%s" with identifier "%s".'$type$identifier));
  964.         }
  965.         return $this->set($schema$identifier);
  966.     }
  967.     public function has(string $typestring $identifier self::IDENTIFIER_DEFAULT): bool
  968.     {
  969.         return array_key_exists($type$this->nodes) && array_key_exists($identifier$this->nodes[$type]);
  970.     }
  971.     public function set(Type $schemastring $identifier self::IDENTIFIER_DEFAULT)
  972.     {
  973.         $this->nodes[get_class($schema)][$identifier] = $schema;
  974.         return $this;
  975.     }
  976.     public function get(string $typestring $identifier self::IDENTIFIER_DEFAULT): Type
  977.     {
  978.         if (! $this->has($type$identifier)) {
  979.             throw new TypeNotInGraph(sprintf('The graph does not have an item of type "%s" with identifier "%s".'$type$identifier));
  980.         }
  981.         return $this->nodes[$type][$identifier];
  982.     }
  983.     public function getOrCreate(string $typestring $identifier self::IDENTIFIER_DEFAULT): Type
  984.     {
  985.         if (! is_subclass_of($typeType::class)) {
  986.             throw new InvalidType(sprintf('The given type "%s" is not an instance of "%s".'$typeType::class));
  987.         }
  988.         if (! $this->has($type$identifier)) {
  989.             $this->set(new $type(), $identifier);
  990.         }
  991.         return $this->get($type$identifier);
  992.     }
  993.     public function hide(string $type, ?string $identifier self::IDENTIFIER_DEFAULT): self
  994.     {
  995.         // hide all
  996.         if ($identifier === null) {
  997.             $this->hidden[$type] = true;
  998.             return $this;
  999.         }
  1000.         // hide single one if nothing configured
  1001.         if (! isset($this->hidden[$type])) {
  1002.             $this->hidden[$type][$identifier] = true;
  1003.             return $this;
  1004.         }
  1005.         // hide single one only if all are not already hidden
  1006.         if ($this->hidden[$type] !== true) {
  1007.             $this->hidden[$type][$identifier] = true;
  1008.             return $this;
  1009.         }
  1010.         return $this;
  1011.     }
  1012.     public function show(string $type, ?string $identifier self::IDENTIFIER_DEFAULT): self
  1013.     {
  1014.         // show all
  1015.         if ($identifier === null) {
  1016.             $this->hidden[$type] = false;
  1017.             return $this;
  1018.         }
  1019.         // show single one if nothing configured
  1020.         if (! isset($this->hidden[$type])) {
  1021.             $this->hidden[$type][$identifier] = false;
  1022.             return $this;
  1023.         }
  1024.         // ignore if everything is shown
  1025.         if ($this->hidden[$type] === false) {
  1026.             return $this;
  1027.         }
  1028.         // show single one if identifier configuration exists
  1029.         if (is_array($this->hidden[$type])) {
  1030.             $this->hidden[$type][$identifier] = false;
  1031.             return $this;
  1032.         }
  1033.         if ($this->hidden[$type] === true) {
  1034.             $this->hidden[$type] = [];
  1035.             // keep everything hidden and show only single one
  1036.             if (isset($this->nodes[$type])) {
  1037.                 foreach ($this->nodes[$type] as $id => $node) {
  1038.                     $this->hidden[$type][$id] = $id !== $identifier;
  1039.                 }
  1040.                 return $this;
  1041.             }
  1042.             // show single one if no nodes exist
  1043.             $this->hidden[$type][$identifier] = false;
  1044.             return $this;
  1045.         }
  1046.         return $this;
  1047.     }
  1048.     public function toArray(): array
  1049.     {
  1050.         $nodes $this->getNodes();
  1051.         foreach ($this->hidden as $type => $hideAll) {
  1052.             if (is_bool($hideAll) && $hideAll) {
  1053.                 unset($nodes[$type]);
  1054.                 continue;
  1055.             }
  1056.             if (is_array($hideAll)) {
  1057.                 foreach ($hideAll as $identifier => $hide) {
  1058.                     if (is_bool($hide) && $hide) {
  1059.                         unset($nodes[$type][$identifier]);
  1060.                     }
  1061.                 }
  1062.             }
  1063.         }
  1064.         $nodes array_reduce($nodes, function (array $carry, array $types) {
  1065.             return array_merge($carryarray_values($types));
  1066.         }, []);
  1067.         return [
  1068.             '@context' => $this->getContext(),
  1069.             '@graph' => $this->serializeNode(array_values($nodes)),
  1070.         ];
  1071.     }
  1072.     protected function serializeNode($node)
  1073.     {
  1074.         if (is_array($node)) {
  1075.             return array_map([$this'serializeNode'], array_values($node));
  1076.         }
  1077.         if ($node instanceof Type) {
  1078.             $node $node->toArray();
  1079.             unset($node['@context']);
  1080.         }
  1081.         return $node;
  1082.     }
  1083.     public function getNodes(): array
  1084.     {
  1085.         return $this->nodes;
  1086.     }
  1087.     public function getContext(): string
  1088.     {
  1089.         return $this->context ?? 'https://schema.org';
  1090.     }
  1091.     public function toScript(): string
  1092.     {
  1093.         return '<script type="application/ld+json">'.json_encode($thisJSON_UNESCAPED_UNICODE).'</script>';
  1094.     }
  1095.     public function jsonSerialize()
  1096.     {
  1097.         return $this->toArray();
  1098.     }
  1099.     public function __toString(): string
  1100.     {
  1101.         return $this->toScript();
  1102.     }
  1103.     protected function getTypeAndIdentifier(string $key): array
  1104.     {
  1105.         if (strpos($key'.') === false) {
  1106.             return [$keyself::IDENTIFIER_DEFAULT];
  1107.         }
  1108.         return explode('.'$key);
  1109.     }
  1110.     public function offsetExists($offset)
  1111.     {
  1112.         [$type$identifier] = $this->getTypeAndIdentifier($offset);
  1113.         return $this->has($type$identifier);
  1114.     }
  1115.     public function offsetGet($offset)
  1116.     {
  1117.         [$type$identifier] = $this->getTypeAndIdentifier($offset);
  1118.         return $this->get($type$identifier);
  1119.     }
  1120.     public function offsetSet($offset$value)
  1121.     {
  1122.         $identifier $offset;
  1123.         if (strpos($offset'.') !== false) {
  1124.             [$type$identifier] = $this->getTypeAndIdentifier($offset);
  1125.         }
  1126.         $this->set($value$identifier);
  1127.     }
  1128.     public function offsetUnset($offset)
  1129.     {
  1130.         [$type$identifier] = $this->getTypeAndIdentifier($offset);
  1131.         unset($this->nodes[$type][$identifier]);
  1132.     }
  1133. }